Kri*_*iiV 3 php laravel eloquent
我有一个拉取GET请求数据的页面.
所以我有: example.com/page?filter1=1&filter2=false
根据请求,有时可出现一个filter3或filter4或一数目的"过滤器"的任何组合.
在我的控制器做一个Input::all();然后希望查询我的模型/数据库.
例如: User::where('filter1', '=' , Input::get('filter1'));
这只是一个例子.如何根据GET请求中存在哪些过滤器动态添加到该查询?
这些过滤器将过滤数据,我希望所有返回的行都包含所有这些过滤器.
任何帮助,将不胜感激!
谢谢!
如果过滤器的命名与db字段完全相同,则可以将它们作为数组传递给where().
我建议使用,except()以便您可以控制已过滤的属性.
$filters = Input::except('filter1', 'filter2', 'filter3');
$users = User::where($filters)->get();
Run Code Online (Sandbox Code Playgroud)
如果过滤器名称并不总是匹配,或者您需要一个不同的运算符,=那么您可以像这样有条件地添加:
$query = User::where('foo', 'bar');
if(Input::has('one')){
$query->where('filter1', '>', Input::get('one'));
}
$users = $query->get();
Run Code Online (Sandbox Code Playgroud)
如果你没有无条件的地方并且需要一些"开始",你可以使用query()它:
$query = User::query();
// add wheres...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3260 次 |
| 最近记录: |