where("name", "like", "%".$value."%"); } } /** * 搜索器:学员管理关联用户 * @param $value * @param $data */ public function searchUserIdAttr($query, $value, $data) { if ($value) { $query->where("user_id", $value); } } /** * 搜索器:学员管理学员有效学时 * @param $value * @param $data */ public function searchHaveStudyTimeAttr($query, $value, $data) { $start = empty($value[0]) ? 0 : $value[0]; $end = empty($value[1]) ? 0 : $value[1]; if ($start > 0 && $end > 0) { $query->where([["have_study_time", "between", [$start, $end]]]); } else if ($start > 0 && $end == 0) { $query->where([["have_study_time", ">=", $start]]); } else if ($start == 0 && $end > 0) { $query->where([["have_study_time", "<=", $end]]); } } /** * 搜索器:学员管理学员完成学时 * @param $value * @param $data */ public function searchEndStudyTimeAttr($query, $value, $data) { $start = empty($value[0]) ? 0 : $value[0]; $end = empty($value[1]) ? 0 : $value[1]; if ($start > 0 && $end > 0) { $query->where([["end_study_time", "between", [$start, $end]]]); } else if ($start > 0 && $end == 0) { $query->where([["end_study_time", ">=", $start]]); } else if ($start == 0 && $end > 0) { $query->where([["end_study_time", "<=", $end]]); } } /** * 搜索器:学员管理紧急联系人 * @param $value * @param $data */ public function searchEmergencyContactAttr($query, $value, $data) { if ($value) { $query->where("emergency_contact", "like", "%".$value."%"); } } /** * 搜索器:学员管理学员等级 * @param $value * @param $data */ public function searchLevelAttr($query, $value, $data) { if ($value) { $query->where("level", $value); } } /** * 搜索器:学员管理状态 * @param $value * @param $data */ public function searchStatusAttr($query, $value, $data) { if ($value) { $query->where("status", $value); } } /** * 搜索器:学员管理添加时间 * @param $value * @param $data */ public function searchCreateTimeAttr($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([["create_time", "between", [$start, $end]]]); } else if ($start > 0 && $end == 0) { $query->where([["create_time", ">=", $start]]); } else if ($start == 0 && $end > 0) { $query->where([["create_time", "<=", $end]]); } } public function member(){ return $this->hasOne(Member::class, 'member_id', 'user_id')->joinType('left')->withField('mobile,member_id')->bind(['user_id_name'=>'mobile']); } }