gpt4 book ai didi

Laravel:Eloquent 如何一次性更新模型和相关模型

转载 作者:行者123 更新时间:2023-12-03 10:29:34 26 4
gpt4 key购买 nike

有谁知道是否可以执行以下操作:

假设我们有一个名为 User 的模型和一个名为 BestFriend 的模型。用户和最好的 friend 之间的关系是 1:1。

我希望这些案例能够做这样的事情,同时改变我的城市和我 friend 的城市。

$me = User::find(1);

$me->update(array(
'city' => 'amsterdam',
'bestfriend.city' => 'amsterdam'
));

所以基本上我想知道 Eloquent 是否足够聪明来理解基于数组键“bestfriend.city”的关系。

在此先感谢您的帮助!

更新:

在 Laravel 论坛上找到了解决方案,但如果其他人正在寻找同样的东西,我也会在这里发布它:)

在您添加的模型中
// In your model...
public function setBestFriendArrayAttribute($values)
{
$this->bestfriend->update($values);
}

然后你可以这样称呼它
$me->update(array(
'city' => 'amsterdam',
'BestFriendArray' => array(
'city' => 'amsterdam'
)
));

奇迹般有效!

最佳答案

你不需要在你的模型上设置它。您可以像这样在 Controller 上执行此操作。

$me = User::find(1)->bestFriend()->update(array(
'city' => 'amsterdam',
'bestfriend.city' => 'amsterdam'
));

我只是稍微修改了您的更新。

关于Laravel:Eloquent 如何一次性更新模型和相关模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17950118/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com