雄弁と友情関係をモデル化する最良の方法は何ですか?私のテーブルのスキーマは以下の通りです。私はすべての友人を以下のように取得できる1つの関係を定義したいと思います。Laravel ORM重複のない友情関係
<?php
class User extends Eloquent {
public function friends() {
return $this->belongsToMany('User', 'friendships', 'user_id', 'friend_id')->orWhere($this->id,'=', 'friend_id');
}
}
+----+---------+-----------+----------+---------------------+---------------------+
| id | user_id | friend_id | state | created_at | updated_at |
+----+---------+-----------+----------+---------------------+---------------------+
| 1 | 3 | 1 | accepted | 0000-00-00 00:00:00 | 0000-00-00 00:00:00 |
| 2 | 2 | 3 | accepted | 0000-00-00 00:00:00 | 0000-00-00 00:00:00 |
+----+---------+-----------+----------+---------------------+---------------------+
上記の関係は、私は3のユーザIDと友達を探したときに、私は、ユーザー1と3を得ることが、明らかに私は、1と2
友情表
をしたい作業に近いですuser_id:友だちを要求したユーザID
friend_id:対象となる友人のユーザID
state:友情が保留中か、受け入れられているか、ブロックされているかどうか。
のcreated_atと
updated_atの私は関係の両側からの友人を取得することができますが、ユーザー1と3が友達であるならば、私はそれから1で、例えば2列でなければなりませんLaravel Many to many self referencing table only works one wayから解決策があることを承知していますrow_user_id = 3、friend_id = 1であり、次の行はその逆である。 (2つの行がない場合は、2つのクエリを実行する必要があります)。
ありがとうございますが、このエラーが発生しました。引数1がIlluminate \ Database \ Query \ Builder :: mergeBindings()に渡されている必要があります。Illuminate \ Database \ Query \ Builderのインスタンス、Illuminate \ Database \ Eloquent \ Relations \ BelongsToMany与えられた/var/www/cc/vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php 857行で呼び出され、 –