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