AT front-end У меня есть несколько кнопок выбора (выберите провайдера, выберите пользователя, период диапазона дат).
<select class="form-control" id="provider">
<option value="0">ALL</option>
<option value="1">First</option>
<option value="2">Second</option>
<option value="3">Third</option>
<option value="4">Fourth</option>
</select>
<select class="form-control" id="res_user">
<option value="0">ALL</option>
<option value="13">James</option>
<option value="27">Perica Aleksov</option>
<option value="30">sad</option>
<option value="32">Test Restaurant</option>
<option value="33">dsfdf</option>
</select>
, поэтому теперь мне нужно построить запрос Laravel для получения данных из базы данных дляэто запрашивает, и это не проблема, когда я выбираю какую-то опцию, но у меня есть проблема, когда пользователь выбирает опцию «ВСЕ» ... как обработать это в контроллере Laravel?
Я создаю что-то вроде:
if ($request->provider == 0 AND $request->res_user== 0) {
$vouchers = Voucher::latest()
->where('user_id',$request->account)
// ->where('created_by',$request->res_user)
// ->where('source',$request->provider)
->where('created_at', '>=', Carbon::parse($request->startDate))
->where('created_at', '<=', Carbon::parse($request->endDate))
->get();
} elseif ($request->provider == 0) {
$vouchers = Voucher::latest()
->where('user_id',$request->account)
->where('created_by',$request->res_user)
// ->where('source',$request->provider)
->where('created_at', '>=', Carbon::parse($request->startDate))
->where('created_at', '<=', Carbon::parse($request->endDate))
->get();
} elseif ($request->res_user== 0) {
$vouchers = Voucher::latest()
->where('user_id',$request->account)
// ->where('created_by',$request->res_user)
->where('source',$request->provider)
->where('created_at', '>=', Carbon::parse($request->startDate))
->where('created_at', '<=', Carbon::parse($request->endDate))
->get();
} else {
$vouchers = Voucher::latest()
->where('user_id',$request->account)
->where('created_by',$request->res_user)
->where('source',$request->provider)
->where('created_at', '>=', Carbon::parse($request->startDate))
->where('created_at', '<=', Carbon::parse($request->endDate))
->get();
}
Есть ли более элегантный способ, чем этот, который я использую?
Итак, как извлечь все данные, когда request-> provider равен 0, без make if {} else {} каждый раз?
Есть ли способ сделать это?