我计划使用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