我是 Laravel 新手。我想从表中过滤用户。
1) 第一个表“用户” Users table
2) 第二个表“请求” Requests table
3) 我的 Controller
public function search()
{
$my_id= Auth::User()->id;
$my_gender= Auth::User()->gender;
$users = DB::table('users')
->join('personal_info', 'users.id', '=', 'personal_info.user_id')
->join('user_about', 'users.id', '=', 'user_about.user_id');
->join('requests', 'users.id', '=', 'requests.request_to_id');
$users = $users ->whereNotIn('users.id', [$my_id]);
$users = $users ->whereNotIn('users.gender', [$my_gender]);
$users = $users ->whereNotIn('requests.request_to_id', ['users.id']);
$users = $users ->paginate(7);
return view('search',compact('users'));
}
4) Users 是我的主表,它与其他两个表以及 requests 表组合在一起,我想要过滤 (requests.request_to_id) 中存在的用户 (users.id)。我得到的是空白屏幕,什么也没得到。
最佳答案
像本例中那样调用数据库后:
DB::table('requests')
->where('request_by_id', '=', $my_id)
->value('request_to_id');
您必须将 ->get()
添加到查询末尾,才能从数据库获取值。
关于php - 从 Laravel 中的另一个表中过滤表中的用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39901843/