Where 条件个数不确定

在 laravel 中用条件搜索的时候,不确定本次是多少个条件进行筛选,有可能是一个时间,也有可能是 idl 和时间,怎么处理这个问题比较简单,总不能不停的判断加条件吧

讨论数量: 5
zhuzixian520

您好同学,您说的常见做法,应该是这样的

$q = DB::table('users')->where('votes', '=', 100);
if ($age) {
    $q->where('age', '>', 35);
}
$res = $q->get();

在laravel 的 collection 中可以使用 ->filter() 方法来过滤条件

在yii2 中,有andFilterWhere()等多个方法,自动忽略的空值的参数条件

2年前 评论
$test_param = $request->post('test_param', '');
$records = Test::when($test_param, function($q) use ($test_param) {
  $q->where('param', $test_param);
})
//->when(){}
->paginate(10);
2年前 评论
MArtian 2年前
licxisky 1年前
 return $model->when($params->name, function ($query) use ($params) {
            $query->where('name', 'like', '%' . $params->name);
        })->get()

可使用when方法

1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!