Laravel Eloquent - 更新()函数
Posted
技术标签:
【中文标题】Laravel Eloquent - 更新()函数【英文标题】:Laravel Eloquent - update() function 【发布时间】:2014-07-19 20:41:37 【问题描述】:Laravel 的 Eloquent update()
函数返回一个布尔值,而不是更新后的条目。我正在使用:
return User::find($id)->update( Input::all() )
这只会返回一个布尔值。有没有办法在不运行另一个查询的情况下获取实际行?
【问题讨论】:
【参考方案1】:另一种方法可以是使用 laravel tap
辅助函数。
这是一个使用它来更新和获取更新模型的示例:
$user = User::first();
$updated = tap($user)->update([
"username" => "newUserName123"
]);
tap($user)
允许我们链接该模型中的任何方法。而最后,它将返回 $user
模型,而不是 update
方法返回的模型。
【讨论】:
【参考方案2】:我认为这就是你想要的行为:
$user = User::find($id)->fill(Input::all());
return ($user->update())?$user:false;
我希望它对你有用。
【讨论】:
您先生是救世主!有没有办法通过传递关系数据来使用fill()
,然后使用push()
来更新所有?
我对基础 Model
类进行了更改,并且在保存/更新之前对输入进行了预处理。我在同一个事务中拆分了相关的输入数据并保存/更新,但 Eloquent 默认不这样做。
好的,在这种情况下,我会做类似的事情以上是关于Laravel Eloquent - 更新()函数的主要内容,如果未能解决你的问题,请参考以下文章
如何在 laravel 5 中使用 Eloquent 更新数据透视表