В laravel действиях контроллера можно получить объект Request в качестве параметра, который можно использовать для извлечения фильтров из вашего интерфейса.
public function searchFilms(Request $request)
{
$data = $request->all();
$user = Auth::user();
return FilmResource::collection($this->repository->searchFilms($data));
}
класс запроса имеет несколько способов получения своего данные, вы можете прочитать это , чтобы узнать о них, но, -> все () (подробнее об этом здесь является одним из способов.
Затем передать данные в вашу функцию searchFilms и применить фильтры
public function searchFilms($filters)
{
$films= Film::from('films')
->join('categories', 'films.id', '=', $filters['film_id'])
->join('locations', 'id', '=', $filters['location_id'])
->join('age_rating', 'id', $filters['age_rating_id'])
->orderBy('updated_at', 'desc');
}
Что-то подобное сработало бы, я не знаю названия ваших входов, но вы могли бы понять из этого.
Edited
Итак, чтобы уточнить ваш вопрос в комментариях.
$ request-> all () вернет массив ваших опубликованных данных, в котором имя вашего атрибута входные данные будут ключом для каждого значения. Так, например, допустим, у меня есть следующая форма html:
<form>
<input name="name" type="text" value="john doe" />
<input name="age" type="text" value="39" />
</form>
$request->all()
будет массивом, подобным этому ['title' => 'john doe', 'age' => '39']
;