php - Laravel 模型函数“创建”和“插入”有什么区别?
问题描述
Laravel 模型允许两个函数将值插入数据库表。他们是
创造:
User::create(['id'=>1,'name'=>'stack']);
插入:
User::insert(['id'=>2,'name'=>'overflow']);
我发现他们执行类似的操作。他们之间有什么区别?
解决方案
插入() :
如果您使用 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 属性来执行此操作
推荐阅读
- user-interface - 带有图标的 ionic UI 迷你固定侧边栏
- numpy - For循环在np 3d数组上获得总和和平均值
- python - 如何使用 Discord 机器人更改 Discord 服务器的通知设置?
- excel - Excel - 如何手动计算每秒工作表?
- python - 如何在 Python 中修复我的字符串整数问题
- r - 过滤器和左连接
- javascript - 在`setState`回调中执行时,增量变得混乱
- android - 直接访问时 MutableLiveData 值错误
- python - Scrapy bot在没有任何上下文的情况下在给定域之外爬行网站
- symfony - 在空 Symfony 上调用成员函数 persist()