Как построить запрос на основе условий в Laravel 6.x? - PullRequest
0 голосов
/ 18 февраля 2020
public function test(Request $request){
    $apartments = DB::table('apartments');
    if ($request->filled('bathrooms')) {
        $apartments->where('bathrooms', '=' ,$request->input('bathrooms'));
    }
    if ($request->filled('rooms_number')) {
        $apartments->where('rooms_number', '=', $request->input('rooms_number'));
    }
    $apartments->get();
    return view('pages.test2' , compact('apartments'));
}

Как этот код можно перевести так, чтобы он работал в Laravel?

1 Ответ

0 голосов
/ 18 февраля 2020

Вы можете использовать when в качестве условного предложения :

public function test (Request $request)
{
    $apartments = DB::table('apartments')
        ->when($request->filled('bathrooms'), function ($query) use ($request) {
            return $query->where('bathrooms', '=', $request->input('bathrooms'));
        })
        ->when($request->filled('rooms_number'), function ($query) use ($request) {
            return $query->where('rooms_number', '=', $request->input('rooms_number'));
        })
        ->get();

    return view('pages.test2' , compact('apartments'));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...