Доброго времени суток. Нужно обработать форму поиска и выдавать значения в зависимости от параметров формы.
Имеется такая форма:
<form name="searchForm" id="searchForm" action="{{ route('search') }}" method="post">
{{ csrf_field() }}
<div class="form-group">
<input type="text" name="searchString" id="searchString" class="form-control" placeholder="Поиск..." autofocus>
</div>
<div class="form-group">
<label for="sex">Пол:</label>
<input type="checkbox" name="man" value="male" checked> Муж
<input type="checkbox" name="woman" value="female" checked> Жен
</div>
<div class="form-group">
<label for="age">Возраст:</label>
<input type="text" id="ageFrom" name="ageFrom" placeholder="С">
<input type="text" id="ageTo" name="ageTo" placeholder="По">
</div>
<div class="form-group">
<input type="submit" name="submitBtn" id="submitBtn" value="Поиск" class="btn btn-default">
</div>
</form>
и метод, который ее обрабатывает:
public function search(Request $request)
{
// dd($request->man);
$users = User::where(function ($query) use ($request) {
$query->where('first_name', 'like', '%'.$request->searchString.'%')->
orWhere('last_name', 'like', '%'.$request->searchString.'%')->
orWhere('middle_name', 'like', '%'.$request->searchString.'%')->get();
})->where(function ($query) use ($request) {
if ($request->man && $request->woman) {
$query->where('sex', 'male')->where('sex', 'female');
} elseif ($request->man && !$request->woman) {
$query->where('sex', 'man');
} elseif (!$request->man && $request->woman) {
$query->where('sex', 'female');
} else {
$query->where('sex', null);
}
})->where(function ($query) use ($request) {
})->paginate(2);
return view('user.index')->withUsers($users);
}
Как мне построить запрос query builder, чтобы оно заработало?