私はこの非常に大きな検索クエリを持っており、ユーザーの検索をブロックした検索からユーザーを削除しようとしています。Laravel 5.2 WhereNotInクエリ
私は本当に混乱していて、向きが変わっていて、助けが大好きです。
BLOCKED_USERSテーブルは
id
user_id
blocked_user_id
ユーザブロック別のユーザの行が作成されているが含まれています。今のところ、ユーザーが検索に表示されていないユーザーをブロックしていない場合(ユーザーがテーブルに存在していない場合は、結合のために推測します)、
ここは、私のクエリの短い抜粋です
$query = User::join('user_profiles', 'users.id', '=','user_profiles.user_id');
$query->Join('blocked_users', 'users.id', '=', 'blocked_users.user_id');
$query->whereNotIn('blocked_users.blocked_user_id',[Auth::user()->id])->select('users.*','user_profiles.*');
EDIT
[OK]をので、私のユーザーIDが1である、と私は、それ以上、あるいはショーそれらを連絡するために、ユーザ2は、希望しない場合私の検索では、彼らはテーブルに行を追加する私をブロックするだろう
int、user_id = 2、blocked_user_id = 1
もし私が検索したら、ユーザー1の検索でユーザー2が表示されないようにしてください。
leftJoinの場合私をブロックしたユーザーに関係なく、自分のユーザーIDがblocked_user_idの任意の行にある場合、ユーザーは表示されません。
私はどのように視覚的なデータを与えることができるか分からない。クエリ全体が非常に大規模で完全に動作します。私はwhere節をどのように組み合わせるか分かりません。
は、エラーのビットを取得し、ありがとうございます。 - BadMethodCallException in Builder.php 2345: 未定義のメソッドを呼び出す\ Database \ Query \ Builder :: id() –
ありがとうございました! –