我正在尝试为 Model 的属性设置新值,但它不起作用。我在设置新值后立即使用 dd() 但它保留了旧值。
$business->users()
->where('userable_id', $business->id)
->where('userable_type', 'App\Models\Business')
->first()->first_name = "New";
试试这个:
$business->users()
->where('userable_id', $business->id)
->where('userable_type', 'App\Models\Business')
->first()->update(['first_name' => "New"]);
直接对象属性分配 like$model->attribute = 'foo';
仅影响内存中的状态,不会在数据库中进行更改。
所以你想去
$model->update(['attribute' => 'value']);
或者
$model->attribute = 'value';
$model->save();
更新 1:
正如我在我的回答的评论中所写的那样,如果没有找到任何模型,有时first()
可能会返回null
。我想提供建议firstOrFail()
。
请注意,没有预定义的处理程序用于ModelNotFound
exeption(由 抛出firstOrFail()
),因此您希望在Handler
类中手动处理此类错误,否则您将获得默认的 404 Laravel 页面。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句