У меня есть код который производит поис в базе по заданным параметрам, я знаю что этот когд можно оптимизиировать, но не могу сообразить как.
Пробовал Query Builder, но доконца с ним не могу разобратся.
public function index(Request $request, Response $response)
{
$typeId = $request->get('type');
$search = $request->get('search');
if ($typeId && !$search) {
$element = Element::where('type_id', '=', $typeId)
->where('title', 'like', '%' . $search . '%')
->get();
$response->setMessage('Данные успешно загрузил 1');
} elseif ($typeId && $search) {
$element = Element::where('type_id', '=', $typeId)
->where('title', 'like', '%' . $search . '%')
->get();
$response->setMessage('Данные успешно загрузил 2');
} elseif (!$typeId || $search) {
$element = Element::where('title', 'like', '%' . $search . '%')->get();
$response->setMessage('Данные успешно загрузил 3');
} elseif ($typeId == null && $search == null){
$element = Element::get();
$response->setMessage('Данные успешно загрузил 4');
}
$response->setStatus('OK');
$response->setData(['Element' => $element->load('elementtype')]);
return $response->asJson();
}