You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel批量赋值fill()方法无法赋值role_id问题排查

Laravel中fill()批量赋值role_id失效的解决方案

问题原因

Laravel默认开启批量赋值保护,只有在模型的$fillable属性中声明的字段,才能通过fill()、create()等批量赋值方法被赋值。你的role_id字段未被加入$fillable列表,所以fill()会自动忽略该字段。

解决方法

修改User模型,将role_id添加到$fillable数组中:

class User extends Model
{
    /**
     * 可以被批量赋值的属性
     *
     * @var array<int, string>
     */
    protected $fillable = [
        'name',
        'email',
        'password',
        'role_id', // 新增该行
    ];
}

补充说明

  • 手动赋值$user->role_id = $request->role_id不受批量赋值保护限制,因此能正常生效
  • 你已确认$validated数组包含role_id、字段类型与数据库匹配,只需补充$fillable配置即可解决问题

内容的提问来源于stack exchange,提问作者Imran Ahmad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 21:57:12