当我翻阅拉威尔关于Eloquent 的ORM主题部分的文件时,我得到了一个新术语"大规模作业(job)".

文档显示如何进行质量分配以及$fillable$guarded属性设置.但在经历了这些之后,我对"大规模作业(job)"及其工作原理没有一个清晰的理解.

在我过go 使用CodeIgniter的经验中,我也没有听说过这个术语.

有人对此有简单的解释吗?

推荐答案

批量分配是指将数组发送到模型创建,基本上是在模型上一次设置一组字段,而不是逐个设置,如下所示:

$user = new User(request()->all());

(这不是在模型上分别显式设置每个值.)

您可以使用fillable来保护您希望它实际允许更新的字段.

通过执行以下操作,您还可以挡路所有字段,使其不再是可批量分配的字段:

protected $guarded = ['*'];

假设在用户表中有一个字段是user_type,可以有user/admin的值

显然,您不希望用户能够更新此值.理论上,如果你使用上面的代码,有人可以在表单中插入一个新的字段user_type,并发送"admin"和其他表单数据,然后轻松地将他们的帐户切换到admin帐户...坏消息.

加入:

$fillable = ['name', 'password', 'email'];

您正在确保只能使用mass assignment更新这些值

要更新user_type值,需要在模型上显式设置并保存,如下所示:

$user->user_type = 'admin';
$user->save();

Php相关问答推荐

Laravel 9如何过滤$的项目与结果?

在WooCommerce产品档案页面中显示产品销售百分比

向在添加到购物车上动态创建的WooCommerce产品添加发货类别

msgraph-sdk-php v2如何传递skiptoken到request?

如何在php中生成包含第100秒的时间序列?

根据选定的字段值显示或隐藏WooCommerce注册字段

只收取WooCommerce中最高的运费

带Redhat php curl的http_code 0

我有一个显示记录的表格,每行在最右边有两个按钮.如何才能以正确的顺序获得表的值?

根据WooCommerce Cart小计阈值自动应用优惠券

如何在微软图形API中使用用户S访问令牌或基于租户ID的访问令牌?

CKEDITOR-如何在PHP中判断提交后的空数据

根据WooCommerce中的自定义用户元数据值更改用户角色

Laravel Http::get not working on controller

打折时更改 Woocommerce 产品名称

在 groupBy laravel 5.7 中 Select 多列

跟踪通过 WooCommerce 分层定价表插件进行的购买

为什么foreach循环会输出每个结果?

从 d-m-Y 日期格式 laravel 计算月份 = 01 的列的总和

将加密/解密函数从 PHP 转换为 NodeJS