【发布时间】:2021-07-29 20:19:42
【问题描述】:
我在查询 2 个表时遇到问题。
基本上我有一个“黑名单”表,其中包含 2 列“user_id”和“block_id”,其中“user_id”是当前用户,“block_id”是被阻止的用户。另一个表是“用户”,其中有注册用户的信息。
在我的站点我有一个搜索用户的页面,我的问题是如果id1阻止了id2,当id2搜索id1时它不应该显示,所以在'black_list'表中我会有这些值user_id = 1 和 block_list = 2
我尝试了很多方法,但我没有成功,你能帮帮我吗?对不起,我的英语
public function search(Request $request){
$id= Auth::id();
$query = $request->query('query');
$utentis = DB::table('black_lists')
->join('users', 'users.id', '=', 'users.id')
->where('users.id', '!=', $id)
->where('users.name', 'like', '%' . $query . '%')
->where('black_lists.user_id', '!=', 'users.id')
->orWhere('users.cognome', 'like', '%' . $query . '%')
->where('black_lists.user_id', '!=', 'users.id')
->where('users.id', '!=', $id)
->orWhere('users.username', 'like', '%' . $query . '%')
->where('black_lists.user_id', '!=', 'users.id')
->where('users.id', '!=', $id)
->select('users.id', 'users.name', 'users.fotoProfilo')
->get();
if ($utentis->count() > 0) {
return response()->json($utentis);
}
}
【问题讨论】:
-
join('users', 'users.id', '=', 'users.id')看起来不对。两个连接列之一应该来自black_lists表