场景:我有一个生成器,它将每个用户作为单行返回。我需要更新它,理想情况下使用Eloquent,而不是另一个原始查询。
推荐的更新方法,在我的方案中对我不起作用:
$user = User::whereId($id);
$user->name = "John Smith";
$user->save()
我也被告知要使用Model::update($id, $attributes])
,但这在我的情况下不起作用,因为我的某些属性未列为可填充。
如何拍摄单个记录并将其转换回模型对应的记录。
答案 0 :(得分:0)
如果您查看laravel中的save()
方法,您会看到有一个名为exists
的属性。将行转换回记录所需要做的就是告诉模型它已经存在并且它将尝试更新而不是插入。
示例:
$user = app(User::class);
$user->exists = true;
$user->id = 1;
$user->name = "John Smith";
$user->save();
你有它。该模型明智地知道它应该更新而不是插入。