Laravel REST API:将查询字符串参数转换为数据库搜索查询

时间:2014-04-22 06:48:11

标签: php laravel eloquent asp.net-web-api

我一直在使用Laravel 4& amp ;;为我的移动应用程序编写API。雄辩。我已经阅读了一些有关编写优秀API的详细信息,包括Phil Build a Decent API& apigee的RESTful API Design

APIgee谈论查询字符串下的复杂性。从查询字符串获取参数可能很麻烦,因为参数的数量和数量可能不同。类型。例如,为了得到一个黑色的狗,请求将是

http://url.com/api/dogs?color=black

和黑色的狗&年龄将是

http://url.com/api/dogs?color=black&age=16

$dogs = new Dog;

if(Input::get('color'))
    $houses->where('color', '=', Input::get('color'));

if(Input::get('age'))
    $houses->where('age', '=', Input::get('age'));
// Keep adding more for every filter you have :-|

$dogs = $dogs->get();

另类&但更好的方法是使用DB列名作为参数名称,并使用foreach循环来构造查询。

但是,我想知道这种方法是否有替代,或者处理查询字符串的标准方法。

1 个答案:

答案 0 :(得分:1)

我认为如果您有3-4个参数,那么您可以像上面那样单独检查它们。

但是如果你有很多参数,那么你可以使用foreach循环,采取预防措施以避免从隐藏字段(如id)中搜索。下面的例子..

$inputs = Input::except('id', 'something_cannot_be_used_for_searching');

    foreach($inputs as $key => $input)
    {
     //Stmts
    }

如果有任何其他问题,请告诉我。 谢谢:))