Laravel Model 的 fillable (白名单)与 guarded (黑名单)

更新日期: 2019-10-13 阅读次数: 19892 分类: Laravel

例如

protected $fillable = ['name'];
protected $guarded = ['price'];

定义了 name 字段可以写入/修改,而 price 字段不可以。

需要注意的是,fillable 与 guarded 只限制了 create 方法,而不会限制 save。

我觉得 Laravel 这样设计的原因是,create 通常是使用 request 中的所有请求参数来创建对象,而 save 则是一个字段一个字段的手动赋值,所以 create 有可能会恶意加入不应该插入的字段,例如 is_admin。基于此,create 还是需要有 fillable, guarded 来过滤一层比较安全。

Laravel 入门教程推荐

关于作者

我是来自山东烟台的一名开发者,喜欢瞎折腾,顺便记记笔记。有敢兴趣的话题,欢迎加微信 zhongwei 聊聊。 白天工地搬砖,晚上哄熊孩子,可能回复有点慢,见谅。 查看更多联系方式

相关文章

爱评论不评论

近期节日

2020年02月28日 世界居住条件调查日
2020年03月01日 国际海豹日
2020年03月03日 全国爱耳日
2020年03月05日 学雷锋日
2020年03月05日 惊蛰
2020年03月08日 三八妇女节
2020年03月12日 植树节
2020年03月14日 白色情人节
2020年03月15日 消费者权益日
2020年03月17日 国际航海日
2020年03月20日 世界无肉日
2020年03月20日 春分
查看更多节日