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

Laravel 5.6+MongoDB注册加密密码报错:间接修改重载属性无效

问题解决:Indirect modification of overloaded property App\User::$attribute has no effect

嘿,这个问题其实是个容易忽略的拼写小失误!

你在User模型的密码修改器里写错了属性名——你用了单数的$this->attribute,但Laravel模型中存储属性的数组是复数形式的$this->attributes。

当你尝试修改$this->attribute['password']时,由于这个单数属性并不存在,PHP会将其识别为一个重载的动态属性,这就触发了「间接修改重载属性无效」的错误提示。

错误的写法:

public function setPasswordAttribute($value){ 
    $this->attribute['password'] = bcrypt($value); 
}

修正后的正确代码:

public function setPasswordAttribute($value){ 
    $this->attributes['password'] = bcrypt($value); 
}

修改完成后,当你在AuthController里调用User::create($request->all())时,Laravel会自动触发setPasswordAttribute修改器,把请求中的明文密码加密后存入数据库,就能正常完成用户注册流程啦!

内容的提问来源于stack exchange,提问作者Gerard Luque

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:35:17