两个字段比较
where('fulfill_time', '<', Db::raw('expected')
可以写成
whereRaw('fulfill_time < expected')
或者处理fulfill_time为null的情况 会在他为null的时候使用默认值 0
whereRaw('COALESCE(fulfill_time, "0") < expected')
链式操作复用问题
$model = $this->model->whereBetween('create_time', $CreateS);
$xxx = $model->where('status', 3)->group('notice_uid')->select();
$aaa = $model->where('status', 3)->group('complaint_source')->select();
这样使用会有链式复用的问题 导致两次查询的查询条件叠加
可以在改写为
$xxx = (clone $model)->where('status', 3)->group('notice_uid')->select();
$aaa = (clone $model)->where('status', 3)->group('complaint_source')->select();
这样就可以避免服用的问题保证每次查询都是一个完整的条件
解释
- clone $model: 通过克隆 $model 对象,确保每次调用 where 和 group 时,都是基于相同的初始条件,而不是累积之前的条件。
- 独立查询: 这样每个查询是独立的,不会受到其他查询条件的影响,确保结果的准确性。