Laravel忽略白名单和黑名单

区别

$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 的步骤。

并且能保证用户发送不了 破坏 系统的数据。
(比如我这个的user_id,用户发送user_id过来也没用)

unguarded闭包

只有 本次调用忽略 黑白名单, 也不会坑到别人。
Laravel忽略白名单和黑名单

本作品采用《CC 协议》,转载必须注明作者和本文链接
专心学习不瞎搞
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 2

file protected 写错了

2年前 评论
lyxxxh (楼主) 2年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
未填写
文章
87
粉丝
105
喜欢
480
收藏
717
排名:109
访问:8.7 万
私信
所有博文
社区赞助商