Фильтровать пользователей в таблице из другой таблицы в Laravel

#php #mysql #sql #laravel #laravel-5.3

#php #mysql #sql #laravel #laravel-5.3

Вопрос:

Я новичок в Laravel. Я хочу фильтровать пользователей из таблицы.

1) Первая таблица «пользователи» Таблица пользователей

2) Вторая таблица «запросы» Запрашивает таблицу

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) Пользователи — моя основная таблица, она объединена с двумя другими таблицами, а также с таблицей запросов, я хочу фильтровать пользователей (users.id ) , которые присутствуют в (requests.request_to_id) . И я получаю пустой экран, ничего не получаю.

Ответ №1:

После вызова базы данных, как вы делаете в этом примере:

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

Вы должны добавить ->get() в конец запроса, чтобы получить значение из базы данных.

Комментарии:

1. и в конце этого: DB::table(‘users’)