Laravel Eloquent 链接方法返回 true 而不是模型
Laravel Eloquent chained method returning true instead of model
为什么在这种情况下 $cv
$cv = Cv::findOrFail($id)->fill($request->all());
$cv->save();
var_dump($cv);
返回模型(这样我就可以访问 $cv->id
在这种情况下
$cv = Cv::findOrFail($id)->fill($request->all())->save();
var_dump($cv);
只返回 true
?
我被类似的事情弄糊涂了。 fill() 和 create() 方法都创建并 return 一个新模型。您需要先了解模型,然后才能对其进行任何操作。
方法 save() 总是 returns 布尔值。
所以在第二种情况下,正在创建模型,并在该新模型上调用保存(检查数据库以确保),但您无法访问它。
虽然不是很漂亮,但第一种情况是你应该如何 create/fill 模型。
$cv = Cv::findOrFail($id)->fill($request->all());
在这里,你最后一个链式方法 fill
returns 一个模型对象,它被分配给你的变量 $cv
.
$cv->save();
这个returns一个boolean
但是你还没有赋值给$cv
,所以你的$cv
变量还是和第一行一样,就是模型。
在你的下一个例子中,
$cv = Cv::findOrFail($id)->fill($request->all())->save();
你最后一个链式方法 save
returns 一个布尔值,它被分配给你的变量 $cv
为什么在这种情况下 $cv
$cv = Cv::findOrFail($id)->fill($request->all());
$cv->save();
var_dump($cv);
返回模型(这样我就可以访问 $cv->id
在这种情况下
$cv = Cv::findOrFail($id)->fill($request->all())->save();
var_dump($cv);
只返回 true
?
我被类似的事情弄糊涂了。 fill() 和 create() 方法都创建并 return 一个新模型。您需要先了解模型,然后才能对其进行任何操作。
方法 save() 总是 returns 布尔值。
所以在第二种情况下,正在创建模型,并在该新模型上调用保存(检查数据库以确保),但您无法访问它。
虽然不是很漂亮,但第一种情况是你应该如何 create/fill 模型。
$cv = Cv::findOrFail($id)->fill($request->all());
在这里,你最后一个链式方法 fill
returns 一个模型对象,它被分配给你的变量 $cv
.
$cv->save();
这个returns一个boolean
但是你还没有赋值给$cv
,所以你的$cv
变量还是和第一行一样,就是模型。
在你的下一个例子中,
$cv = Cv::findOrFail($id)->fill($request->all())->save();
你最后一个链式方法 save
returns 一个布尔值,它被分配给你的变量 $cv