where("staff_id", $value); } } /** * 搜索器:工资部门 * @param $value * @param $data */ public function searchDepartmentIdAttr($query, $value, $data) { if ($value) { $query->where("department_id", $value); } } /** * 搜索器:工资发放状态 * @param $value * @param $data */ public function searchPaymentStatusAttr($query, $value, $data) { if ($value) { $query->where("payment_status", $value); } } /** * 搜索器:工资创建时间 * @param $value * @param $data */ public function searchCreatedAtAttr($query, $value, $data) { $start = empty($value[0]) ? 0 : strtotime($value[0]); $end = empty($value[1]) ? 0 : strtotime($value[1]); if ($start > 0 && $end > 0) { $query->where([["created_at", "between", [$start, $end]]]); } else if ($start > 0 && $end == 0) { $query->where([["created_at", ">=", $start]]); } else if ($start == 0 && $end > 0) { $query->where([["created_at", "<=", $end]]); } } public function personnel(){ return $this->hasOne(Personnel::class, 'id', 'staff_id')->joinType('left')->withField('name,id')->bind(['staff_id_name'=>'name']); } public function departments(){ return $this->hasOne(Departments::class, 'id', 'department_id')->joinType('left')->withField('department_name,id')->bind(['department_id_name'=>'department_name']); } public function campus(){ return $this->hasOne(Campus::class, 'id', 'campus_id')->joinType('left')->withField('campus_name,id')->bind(['campus_name'=>'campus_name']); } }