两个字段比较

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 时,都是基于相同的初始条件,而不是累积之前的条件。
  • 独立查询: 这样每个查询是独立的,不会受到其他查询条件的影响,确保结果的准确性。
Last modification:August 8, 2024
反正也没人会打赏