初めてORMを使おうとしていますが、次のようなモデルを定義しました。
ユーザーモデル:
class User extends Eloquent
{
public function friends()
{
return $this->has_many_and_belongs_to('User', 'friends', 'user1_id', 'user2_id');
}
}
フレンドモデル:
class Friend extends Eloquent
{
public function friend()
{
return $this->belongs_to('User', 'user_id');
}
}
友達のmysqlテーブル:
id (pkey) # user1_id (references users.user_id) # user2_id (references users.user_id)
$user->friends
フレンドデータベースパラメータは任意の順序である可能性があるため(user1はuser2のフレンドであるか、user2はuser1のフレンドである)、現在使用することで一方的なリストを取得します。これは、フォロー/フォロワーのアプローチを使用しようとしていた場合は問題ありませんが、相互に対応させたいと考えています。
この種のことを行うための最良の方法は何ですか?複製されたuser1/user2とuser2/user1をデータベースに挿入することは良いアプローチのようには思えず、これをORMに変換する方法すらわかりません。また、Friendモデルはまったく使用されていない/呼び出されていないようです。
友達招待システムでも同様の問題が発生します。