模型中
class HzDailyPayroll extends Model 中
public function workerInfo()
{
return $this->belongsTo(HzUserWork::class, "work_id","id");
}
class HzUserWork extends Model 中
public function shiftInfo()
{
return $this->belongsTo(HzShiftManage::class,"shift_id","id");
}
控制器使用
return Grid::make(HzDailyPayroll::with(['userInfo','workerInfo']), function (Grid $grid) use ($cid) {
$grid->filter(function (Grid\Filter $filter) use ($cid) {
// 关联关系查询
$filter->where('考勤状态',function($query){
$query->whereHas('workerInfo',function($query){
$query->whereHas('shiftInfo',function($query){
// $query->whereColumn('clockoff_time', '>', 'end_time');
if($this->input == 0){ // 正常
// 两个表联查,对比同一行数据 两个字段值的大小
$query->whereColumn('clockoff_time', '<', 'end_time')->orwhereColumn('clockoff_start_date', '<', 'start_time');
}else if($this->input == 1){ // 异常
$query->whereColumn('clockoff_time', '>', 'end_time')->orwhereColumn('clockoff_start_date', '>', 'start_time');
}
});
});
// 需要当前行查到当前行的打卡规则,再比较打卡时间
})->select(config('status.dapayStatus'))->width(3);