URI中的Laravel条件


Laravel condition in URI

我计划使用Laravel实现一个数据库api,我希望有一个使用URI的搜索功能,如

www.exaample.com/WaferSearch ?{搜索字符串}

实现像

这样的搜索字符串似乎很容易

param1 = 4

这将请求一个晶圆列表(这就是数据库的内容),其中param1等于4

文档似乎非常清楚我如何将任何类型的问题像这样转化为SQL。

然而,我想有一个像

这样的搜索字符串

param1> 4

我也很乐意像这样表达搜索字符串

param1_GreaterThan =4

,我可以看到如何编写一些代码来解析搜索字符串以找出所需的内容。然而,我觉得我将解决一个以前一定已经解决过很多次的问题。

是否有一个行之有效的方法来做到这一点?

格雷厄姆

有很多方法可以实现这样的东西,但有一种方法是最具可扩展性的。在查询中使用两个变量

  • >http://myapi.com/wafersearch?p1=4&op=gt

  • 不到http://myapi.com/wafersearch?p1=4&op=lt

  • =http://myapi.com/wafersearch?p1=4&op=eq

或者,你也可以使用重写将变量直接传递给route/controller方法。

  • >http://myapi.com/wafersearch/gt/4

  • 不到http://myapi.com/wafersearch/lt/4

  • =http://myapi.com/wafersearch/eq/4