Я создаю веб-сайт с помощью Laravel и хочу создать поиск, подобный форме, в которой пользователь может искать фильмы в разных жанрах.Проблема в том, что когда я пытаюсь использовать более одного жанра, отображается только последний вариант, выбранный для каждого из моих полей.Например, мои параметры поиска - жанр и год, и я пытаюсь ввести комедию, мелодраму, боевик, 1992, 2005, но выводит только боевики в 2005 году.
Все данные хранятся в базе данных MySQL, и я использовалосновной для ввода данных с помощью флажков, данные появляются в URL и выполняют поиск, но работают только для одного из параметров в каждом поле.
<form action="/home" method="GET">
<hr>
<h4>Genre</h4><br>
@foreach($movies as $movie)
<input type="checkbox" name="genre" value="{{$movie->genre}}">{{$movie->genre}}<br>
@endforeach
<hr>
<h4>Year</h4>
@foreach($movies as $movie)
<input type="checkbox" name="year" value="{{$movie->year}}">{{$movie->year}}<br>
@endforeach
<input type="submit" class="btn btn-success" value="Search"><br>
</form>
Идея состоит в том, что если пользователь вводит комедию, мелодраму, боевик, 1992, 2005, то выводит комедийные фильмы, боевики и романтические фильмы в 1992 и 2005 годах.
Редактировать
Вот мой контроллер, где я делаю поиск и нумерацию страниц.
public function index(Request $request)
{
$movies = \DB::table('movies');
$queries = [];
$columns = [
'genre','year'
];
foreach ($columns as $column) {
if (request()->has($column)) {
$movies = $movies->where($column, request($column));
$queries[$column] = request($column);
}
}
$movies = $movies->orderBy('created_at', 'desc')->paginate(20)->appends($queries);
return view('home', compact('movies'));
}