fillable 的正确用法

在laravel文档中这么说:

但是在新增前,需要先在模型类里设定好 fillable 或 guarded 属性,因为 Eloquent 默认会防止批量赋值

但是在实际项目中,我表字段很多可能会超过20个,那么如果一个个去写的话,又很麻烦。
那么有没有什么方法 可以"动态" 填充fillable 属性呢?
在Model class 中 找到了 fillable 方法, 于是这么用:


$data = ['a'=>1, 'b'=>2, 'c'=>3];
$user = new User;
$user->fillable(array_keys($data));
$user->save($data);

但是没有生效,那到底 fillable 怎么用呢?

真心求教 ,谢谢~

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 4

可以试试用 forceFill 方法更新

$user->forceFill($data)->save();
6年前 评论

$user = new User();
$user ->fillable(['name', 'age']);
$user ->fill(['name' => 'Bruce Lee', 'age' => 18]);
$user ->save();

5年前 评论
$user = new User();
$user ->forceFill(['name' => 'Bruce Lee', 'age' => 18]);
$user ->save();
3年前 评论

设置 protected $guarded = []; 属性 参数默认全传

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!