Laravel с ИЛИ и ГДЕ от необработанного запроса к Eloquent - PullRequest
0 голосов
/ 10 октября 2019

Как я могу преобразовать этот необработанный запрос в elequent?

$data = DB::select("SELECT * FROM true_advances WHERE submitter_id = '". Auth::id() ."' OR (approval_id = '". Auth::id() ."' AND status != '0') ");

Я пробую этот код, но получаю 0 строку:

 $data = true_advance::where(function($query)
    {
        $query->where('status', '0')
        ->Where('approval_id', Auth::id());
    })->orWhere('submitter_id', Auth::id())->get();

1 Ответ

2 голосов
/ 10 октября 2019

Попробуйте эту версию:

$data = DB::table('true_advance')
    ->where('submitter_id', '=', Auth::id())
    ->orWhere(function ($query) {
        $query->where('approval_id', '=', Auth::id())
              ->where('status', '<>', '0');
        })
    ->get();

Версия, которую я дал выше, придерживается порядка логики, использованной в вашем исходном запросе. Однако ваша версия может работать, если не для неправильной проверки status = 0 (она должна быть status <> 0 на основе необработанного запроса).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...