区别
$fillable
白名单
: 允许插入字段
默认为: []
$guarded
黑名单
: 不允许插入字段
默认为: ['*']
//所有字段设置为黑名单 罪魁祸首
代码
$request->query->set('user_id', Auth::id());Comment::create( $request->all());
解决1
手动把所有字段设置加入到 protected $fillable = ['user_id','nickname',....];
不考虑这种写法,太麻烦了。
解决2
protectd $guarded = [];
这种写法才爽,因为默认所有字段都是黑名单,重置下就好了。
解决3
static $unguarded = true;
忽略黑
白
名单的验证。
跟 解决2
一样舒服。
2和3的问题
要了解为什么需要 白名单
和 黑名单
,再做 2,3
的步骤。