laravel模型获取表名_通过 Laravel Eloquent 模型实现简单增删改查操作

本文介绍了 Laravel 的 Eloquent ORM,详细讲解了如何通过模型实现数据库的增删改查操作,包括获取表名、主键、时间戳等默认约定,以及查询数据、插入数据、更新数据和删除数据的方法,帮助开发者快速掌握 Eloquent 的基本用法。
摘要由CSDN通过智能技术生成

概述

Eloquent 是一个 ActiveRecord ORM 框架,ORM 全称是 Object Relational Mapping,意为对象关系映射,用于实现面向对象编程语言里不同类型系统的数据之间的转换,简单来说,它会构建类与数据表之间的映射关系,从而建立起一个可在编程语言里使用的「虚拟对象数据库」。「ActiveRecord」是 ORM 的一种实现模式,Eloquent 则是 Laravel 版的「ActiveRecord」。

一个 Eloquent 模型类映射一张数据表,通过模型类提供的方法,你可以获取其映射的数据表的所有记录,也可以获取单条记录,还可以创建、更新和删除对应数据表记录,而这一切都不需要你编写任何 SQL 语句、或者构建查询构建器即可完成。

Eloquent 专注于简单,并且和其他框架一样遵循「约定优于配置」,从而允许你通过最少的代码构建功能强大的模型类。

你可能对「约定优于配置」这个理念不太了解,看几个例子就明白了,比如模型类映射的表名、主键、关联关系、日期格式系统都约定好了,一般而言,遵循这个约定,你就可以不用做任何配置、编写任何额外代码即可完成功能,结合我们平时怎么创建使用模型类的,就可以更好的理解这一理念了。下面我们将模型类定义的时候还会强调这一点。

模型类定义

使用模型类之前,需要在数据库有对应的数据表,因为模型类就是数据表在面向对象编程语言中的映射。比如我们前面几篇教程中用到的 User 模型和 Post 模型都是这样,要创建一个模型类,需要使用 make:model 命令:

php artisan make:model Post

注:如果对应的数据表尚未创建,你还可以在创建模型类的同时创建对应的数据库迁移文件,通过 php artisan make:model Post -m 即可。如果你想将模型类创建到 app/Models 目录下,可以这么运行上述命令 php artisan make:model Models/Post

接下来我们就是 posts 表映射的 Post 模型为例,来看看默认都有哪些约定。新生成的 Post 模型类如下:

<?php namespace App;use Illuminate\Database\Eloquent\Model;class Post extends Model{
    //
}

里面什么东西都没有,但是我们就可以通过它完成数据表记录的增删改查操作了,怎么做到的?这就是「约定优于配置」的功劳了。下面我们就来看看这些默认的约定。

表名

Eloquent 约定模型类映射表名是将类名由驼峰格式转化为小写+下划线(含多个单词的话),最后将其转化为复数形式,比如 Post 对应表名是 postsPostTag 对应表名是 post_tags 等等。当然,如果你不想遵循这个系统约定的规则,也可以通过手动设置模型类属性的方式进行自定义,例如:

protected $table = 'articles';
主键

Eloquent 默认假设每张数据表都有一个整型的自增主键,其字段名为 id,如果你的数据表主键名不是 id,可以通过 $primaryKey 属性来指定:

protected $primaryKey = 'post_id';

如果主键不是

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Laravel 是一个流行的 PHP 框架,它提供了许多便利的工具来执行数据库操作。下面是一些使用 Laravel 进行数据库增删改查的示例: 1. 数据库连接 在 Laravel 中,你可以在 `.env` 文件中配置数据库连接信息,例如: ``` DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=mydatabase DB_USERNAME=myusername DB_PASSWORD=mypassword ``` 2. 创建数据表 使用 Laravel 迁移(Migration)可以轻松创建和修改数据表。例如,创建一个 `users` 表: ``` php artisan make:migration create_users_table --create=users ``` 在生成的迁移文件中,你可以定义表的结构和字段信息,例如: ``` public function up() { Schema::create('users', function (Blueprint $table) { $table->id(); $table->string('name'); $table->string('email')->unique(); $$table->timestamp('email_verified_at')->nullable(); $table->string('password'); $table->rememberToken(); $table->timestamps(); }); } ``` 3. 插入数据 使用 LaravelEloquent ORM(对象关系映射)可以轻松地执行插入操作。例如,创建一个新的用户记录: ``` $user = new App\Models\User; $user->name = 'John Doe'; $user->email = 'johndoe@example.com'; $user->password = Hash::make('password'); $user->save(); ``` 4. 查询数据 使用 Eloquent ORM 可以轻松地执行查询操作。例如,查询所有用户记录: ``` $users = App\Models\User::all(); ``` 查询特定用户记录: ``` $user = App\Models\User::find(1); ``` 查询满足条件的用户记录: ``` $users = App\Models\User::where('name', 'John')->get(); ``` 5. 更新数据 使用 Eloquent ORM 可以轻松地执行更新操作。例如,更新特定用户记录: ``` $user = App\Models\User::find(1); $user->name = 'Jane Doe'; $user->save(); ``` 更新满足条件的用户记录: ``` App\Models\User::where('name', 'John')->update(['name' => 'Jane']); ``` 6. 删除数据 使用 Eloquent ORM 可以轻松地执行删除操作。例如,删除特定用户记录: ``` $user = App\Models\User::find(1); $user->delete(); ``` 删除满足条件的用户记录: ``` App\Models\User::where('name', 'John')->delete(); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值