Laravel Model的 fillable (白名单) 和 guarded (黑名单)属性

Laravel Model的 fillable (白名单) 和 guarded (黑名单)属性Laravel Model的 fillable (白名单) 和 guarded (黑名单)属性

大家好,又见面了,我是你们的朋友全栈君。

所有的Eloquent模型预设会防止批量赋值,所以需要在Model中设置fillable和guarded属

注意:新增字段时,要在此加入。

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

fillable为白名单,表示该字段可被批量赋值;guarded为黑名单,表示该字段不可被批量赋值。

为所有属性设置白名单:

protected $fillable = ['*']

可为所有属性设置黑名单:

protected $guarded = ['*'];

laravel的create方法为批量赋值,save方法为逐个手动赋值,需要注意的是,fillable 与 guarded 只限制了 create 方法,而不会限制 save。

create 通常是使用 request 中的所有请求参数来创建对象,而 save 则是一个字段一个字段的手动赋值,所以 create 有可能会恶意加入不应该插入的字段,例如 is_admin。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/105841.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java框架中的controller层、dao层、domain层、service层、view层[通俗易懂]

    1.Controller层:接口层,用户访问请求时对接。Controller层负责具体的业务模块流程的控制,在此层里面要调用Serice层的接口来控制业务流程,控制的配置也同样是在Spring的配置文件里面进行,针对具体的业务流程,会有不同的控制器,我们具体的设计过程中可以将流程进行抽象归纳,设计出可以…

    2022年4月15日
    283
  • Handler进阶之sendMessage原理探索

    Handler进阶之sendMessage原理探索Handler 进阶之 sendMessage 本文主要进一步的探索 Handler 主要介绍下 Handler 是如何发送消息的 用过 Handler 的想必对一下几个方法都不会陌生 sendMessage Messagemsg 立刻发送消息 sendMessageA Messagemsg longatTime 在某个时间点发送消息 sendMessageD

    2025年11月3日
    2
  • C语言 getchar()原理及易错点解析

    C语言 getchar()原理及易错点解析文章目录一.getchar()系列1.getchar()工作原理及作用2.使用getchar()清理回车\n3.使用getchar()清理缓存一.getchar()系列1.getchar()工作原理及作用工作原理:getchar()是stdio.h中的库函数,它的作用是从stdin流中读入一个字符,也就是说,如果stdin有数据的话不用输入它就可以直接读取了,第一次getchar()时,…

    2022年10月19日
    3
  • UNIX基本操作命令

    UNIX基本操作命令UNIX命令基础登录系统:输入密码,密码不显示退出系统:ctrl+dexitlogout创建/修改密码:passwd密码输入后不显示,新密码要输入两次,匹配成功才算是修改密码成功UNIX命令格式:命令选项参数快捷键:ctrl+c:中断当前命令执行并返回shellctrl+d:终端传输或结束文本编辑ctrl+s:临时中断命令的屏幕输出ctrl+q:恢复由ctrl+s的临时中断ctrl+u:清除输入的整个命令行backspace:删除某个错误输入的字符常用操作命令

    2022年5月31日
    433
  • 【C#】后台线程IsBackground「建议收藏」

    【C#】后台线程IsBackground「建议收藏」简单点来说:C#中的线程分前台线程和后台线程。对于前台线程来说,如果这些线程不退出,则主线程无法退出,则整个进程也无法退出。会造成即使界面窗口关掉了,但是进程管理器里还有该程序。因此,在关闭窗口时,需要编程显示的把这些前台线程关掉才行。但是,这样就会带来个问题,需要记录这些前台线程的实例才行,很不方便。为此,可以把线程定义为后台线程。后台线程与前台线程的唯一区别就是:后台线程不需要主动关闭。当所有前台线程都退出以后,主线程会自动的关掉后台线程,然后让进程退出。定义线程为后台线程的方法为:Thr

    2022年10月16日
    2
  • oracle常用操作_oracle日志文件在哪里

    oracle常用操作_oracle日志文件在哪里如果某个oracle账户经常被锁定,说明有应用程序或有人远程连接数据库多次失败后导致账户被锁定,oracle默认是有次数限制的,可以通过以下方式解决问题:1、用管理员账户登录:connsys/sysassysdba;2、解锁账户:alteruserscottaccountunlock;3、重置账户密码:alteruserscottidentifiedbytiger;4、授权:grantresource,connecttoscott;5、修改oracle默认配置:al

    2025年7月8日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号