27

次のことを行うことが可能かどうかは誰にもわかりますか?

User というモデルと BestFriend というモデルがあるとします。ユーザーと親友の関係は 1:1 です。

これらのケースで、このようなことができるようになり、自分の都市と友人の都市を同時に変更できるようにしたいと考えています。

$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'
    )
));

魔法のように動作します!

4

3 に答える 3

11

モデルに設定する必要はありません。このようにコントローラーで実行できます。

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

アップデートを少し修正しました。

于 2015-06-09T02:08:54.017 に答える