我正在寻找一种通过Laravel 4中的查询字符串搜索和过滤数据库表/ Eloquent模型的方法。
我有一个名为houses
的表,其中的列名为:price
,name
,hasCoffeeMachine
和hasStove
我希望用户能够执行以下操作:http://example.com?name=test&hasCoffeeMachine=1
这将获得名称为“test”的所有行,并且他们有咖啡机。
我希望用户能够根据他们想要的过滤器添加URL参数。考虑所有可能的查询字符串组合以从表中返回正确结果的最佳方法是什么?
答案 0 :(得分:14)
$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();
答案 1 :(得分:0)
或者你可以构建并将数组传入where子句https://laravel.com/docs/5.2/queries#where-clauses
$houses = $houses->where([
['hasCoffeeMachine',1],
['price','<','1000'],
])->get();
您可以使用任何条件语句构建数组。