有谁知道是否可以做以下事情:
假设我们有一个名为User的模型和一个名为BestFriend的模型.用户与最好的朋友之间的关系是1:1.
我希望这些案例能够做到这样的事情,同时改变我的城市和我朋友的城市.
$me = User::find(1);
$me->update(array(
'city' => 'amsterdam',
'bestfriend.city' => 'amsterdam'
));
Run Code Online (Sandbox Code Playgroud)
所以基本上我想知道Eloquent是否足够聪明,能够理解基于数组键'bestfriend.city'的关系.
在此先感谢您的帮助!
更新:
在Laravel论坛上找到解决方案,但我也在这里发布,如果其他人正在寻找相同的东西:)
在您添加的模型中
// In your model...
public function setBestFriendArrayAttribute($values)
{
$this->bestfriend->update($values);
}
Run Code Online (Sandbox Code Playgroud)
然后你就可以这样称呼它
$me->update(array(
'city' => 'amsterdam',
'BestFriendArray' => array(
'city' => 'amsterdam'
)
));
Run Code Online (Sandbox Code Playgroud)
奇迹般有效!