Laravel 模型函数“create"和“create"有什么区别?和“插入"?

2021-12-26 00:00:00 php laravel laravel-5 eloquent

Laravel 模型允许使用两个函数将值插入到数据库表中.他们是

Laravel Model allows two functions for inserting the values to the database table. They are

创建:User::create(['id'=>1,'name'=>'stack']);

插入:User::insert(['id'=>2,'name'=>'overflow']);

我发现它们执行类似的操作.它们有什么区别?

I found they perform similar operations. What's difference between them?

推荐答案

insert() :

如果你使用 insert() 方法,你不能默认 created_at 和 updated_at 数据库列它将为空

If you using insert() method you can't default created_at and updated_at database column it will be null

DefaultUser::insert(['username'    =>  $request->username, 'city'  =>  $request->city, 'profile_image' =>  $request->profile_image]);

<小时>

create() :当我们使用 create 方法时,您必须在 fillable fields


create() : when we use create method you must define this model in fillable fields

添加模型

 protected $fillable = ['username','city', 'profile_image'];

添加控制器

DefaultUser::create(['username'    =>  $request->username, 'city'  =>  $request->city, 'profile_image' =>  $request->profile_image]);

那么我们就可以使用create方法而没有**mass assignment error **基本上在这里,表定义的字段在您的模型中受到保护

then we can use create method without **mass assignment error ** basically here , table defined fields are protected in your model

您应该定义要使质量可分配的模型属性.您可以使用模型上的 $fillable 属性来执行此操作

相关文章