Поиск и фильтрация / уточнение результатов базы данных в Laravel 4

Я ищу способ поиска и фильтрации таблицы базы данных / модели Eloquent через строку запроса в Laravel 4.

У меня есть таблица с именами houses с столбцами с именем: price , name , hasCoffeeMachine и hasStove

Я хочу, чтобы пользователь мог сделать что-то вроде: http://example.com?name=test&hasCoffeeMachine=1

Который получит все строки, где имя «тест», и у них есть кофеварка.

Я хочу, чтобы пользователь мог добавлять параметры URL на основе желаемого фильтра. Каков наилучший способ учета всех возможных комбинаций строк запроса, чтобы возвращать правильные результаты из таблицы?

 $houses = new House; if(Input::get('name')) $houses->where('name', '=', Input::get('name')); if(Input::get('hasCoffeeMachine')) $houses->where('hasCoffeeMachine', '=', Input::get('hasCoffeeMachine')); // Keep adding more for every filter you have // Don't do this till you are done adding filters. $houses = $houses->get(); 

альтернативно, вы могли бы построить и передать массив в предложение where https://laravel.com/docs/5.2/queries#where-clauses

 $houses = $houses->where([ ['hasCoffeeMachine',1], ['price','<','1000'], ])->get(); 

Вы можете построить свой массив с любыми условными операторами.