繁体   English   中英

在Laravel 4中搜索和过滤/优化数据库结果

[英]Searching and filtering / refining database results in Laravel 4

我正在寻找一种通过Laravel 4中的查询字符串搜索和过滤数据库表/ Eloquent模型的方法。

我有一个名为houses的表,列名为: pricenamehasCoffeeMachinehasStove

我希望用户能够执行以下操作: http//example.com?name = test&hasCoffeeMachine = 1

这将获得名称为“test”的所有行,并且他们有咖啡机。

我希望用户能够根据他们想要的过滤器添加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();

您可以使用任何条件语句构建数组。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM