该模型没有insert
, 调用结果是通过魔术方法Model::insert
调用(查询生成器),从而避免了 Eloquent 的好处,例如设置for和字段。Builder::insert
__call()
timestamps
created_at
updated_at
它还避免了批量赋值保护,Eloquent 可以防止您插入无意的数据。
因此,我总是会单独使用create
或设置每个字段(如果您需要修改传入数据)并调用save()
模型实例。
插入() :
如果您使用 insert() 方法,则不能默认 created_at 和 updated_at 数据库列,它将为空
DefaultUser::insert(['username' => $request->username, 'city' => $request->city, 'profile_image' => $request->profile_image]);
Run Code Online (Sandbox Code Playgroud)
create() : 当我们使用 create 方法时,您必须在可填充字段中定义此模型
添加您的模型
protected $fillable = ['username','city', 'profile_image'];
Run Code Online (Sandbox Code Playgroud)
添加您的控制器
DefaultUser::create(['username' => $request->username, 'city' => $request->city, 'profile_image' => $request->profile_image]);
Run Code Online (Sandbox Code Playgroud)
然后我们可以使用 create 方法而没有 **mass assignment error ** 基本上在这里,表定义的字段在您的模型中受到保护
您应该定义要使质量可分配的模型属性。您可以使用模型上的 $fillable 属性执行此操作
归档时间: |
|
查看次数: |
1534 次 |
最近记录: |