项目场景:
例如:laravel框架中 很多复杂的业务,都需要根据参数判断model的where条件
问题描述:
例如:如果判断条件都是where还好,可以下列写法:
$where = [];
if($type==1){
$where['name'] = 'zhangsan';
}
UserModel::where($where)->get();
但是有时间 会有whereIn whereBetween 等复杂的查下 仅仅一个数组是满足不了查下的
解决方案:
闭包函数;
$where = function($q)use($type,$sdate,$edate){
if($type==1){
$q->where('name','zhangsan')
}
$q->whereBetween('time',[$sdate,$edate])
};
UserModel::where($where)->get();
这样就能解决复杂的判断查询了