Dim*_*ako 0 php laravel eloquent laravel-5
我正在尝试为Model的属性设置新值,但是它不起作用。我在设置新值后立即使用dd(),但它保留了旧值。
$business->users()
->where('userable_id', $business->id)
->where('userable_type', 'App\Models\Business')
->first()->first_name = "New";
Run Code Online (Sandbox Code Playgroud)
尝试以下方法:
$business->users()
->where('userable_id', $business->id)
->where('userable_type', 'App\Models\Business')
->first()->update(['first_name' => "New"]);
Run Code Online (Sandbox Code Playgroud)
直接对象属性分配$model->attribute = 'foo';仅影响内存状态,不会在数据库中进行更改。
所以你要么去
$model->update(['attribute' => 'value']);
Run Code Online (Sandbox Code Playgroud)
要么
$model->attribute = 'value';
$model->save();
Run Code Online (Sandbox Code Playgroud)
更新1:
如我在答案中的注释中所写,如果找不到任何模型,有时first()可能会返回null。我想建议firstOrFail()。
请注意,没有预定义的处理程序为ModelNotFoundexeption(通过抛出firstOrFail()),所以你想手动处理这种错误Handler类,否则你会得到默认的404 Laravel页。
| 归档时间: |
|
| 查看次数: |
93 次 |
| 最近记录: |