从Laravel中的另一个表中过滤表中的用户

时间:2016-10-06 17:04:06

标签: php mysql sql laravel laravel-5.3

我是Laravel的新手。我想从表中过滤用户。

1)第一张桌子'用户' Users table

2)第二个表'请求' Requests table

3)我的控制器

  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)用户是我的主表,它与另外两个表以及请求表相结合,我想要存在于(requests.request_to_id)中的过滤用户(users.id)。我得到的空白屏幕什么都没有。

1 个答案:

答案 0 :(得分:0)

在调用数据库后,就像你在这个例子中所做的那样:

DB::table('requests')
                   ->where('request_by_id', '=', $my_id)
                   ->value('request_to_id');

您必须在查询结尾添加->get(),才能从数据库中获取值。