首页 > 解决方案 > Laravel 模型函数“创建”和“插入”有什么区别?

问题描述

Laravel 模型允许两个函数将值插入数据库表。他们是

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

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

我发现他们执行类似的操作。他们之间有什么区别?

标签: phplaravellaravel-5eloquent

解决方案


插入() :

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

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

create() : 当我们使用 create 方法时,您必须在可填充字段中定义此模型

添加您的模型

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

添加你的控制器

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

然后我们可以使用创建方法而没有**质量分配错误**基本上在这里,表定义的字段在您的模型中受到保护

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


推荐阅读