Как передать Auth :: user () в существующий запрос? - PullRequest
0 голосов
/ 07 мая 2018

У меня есть запрос, который выбирает значение столбца из базы данных, и это значение передается в переменную, которая затем передается в представление с помощью метода compact.

Запрос выглядит следующим образом: -

$activated_up = User::where(function($query) {
    $query->where('activated_up', '=', '1')
          ->orWhere('activated_up', '=','0');

    })
    ->get(['activated_up']);

Работает нормально. Но он получает только поле activated_up, поэтому, если в базе данных только один пользователь, он работает нормально, но если есть несколько пользователей, мне нужно учитывать Auth::user(), чтобы выделить и выбрать только текущего пользователя, что невозможно с этим существующим запросом.

Поэтому я попытался обновить его методом having.

$activated_up = User::where(function($query) {
    $query->having('id_user', Auth::user()->id_user)
          ->where('activated_up', '=', '1')
          ->orWhere('activated_up', '=','0');

    })
    ->get(['activated_up']);

Но это не работает. Я также попытался с помощью метода union, как показано ниже: -

$id = User::where('id_user',Auth::user()->id_user)->first();
$activated_up = User::where(function($query) {
    $query->where('activated_up', '=', '1')
          ->orWhere('activated_up', '=','0');
          ->union($id);

    })
    ->get(['activated_up']);

Но это тоже не работает. Я должен заставить это работать в любом случае.

Какие изменения необходимы для получения желаемого результата?

1 Ответ

0 голосов
/ 07 мая 2018

Вы должны просто сделать это:

$activated_up = User::where('id_user',Auth::user()->id_user)
->where(function($query) {
$query->where('activated_up', '=', '1')
      ->orWhere('activated_up', '=','0');
})
->get(['activated_up']);
...