where("campus_id", $value); } } /** * 搜索器:学员学员姓名 * @param $value * @param $data */ public function searchNameAttr($query, $value, $data) { if ($value) { $query->where("name", $value); } } /** * 搜索器:学员紧急联系人 * @param $value * @param $data */ public function searchEmergencyContactAttr($query, $value, $data) { if ($value) { $query->where("emergency_contact", $value); } } /** * 搜索器:学员联系人电话 * @param $value * @param $data */ public function searchContactPhoneAttr($query, $value, $data) { if ($value) { $query->where("contact_phone", $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 campus(){ return $this->hasOne(Campus::class, 'id', 'campus_id')->joinType('left')->withField('campus_name,id')->bind(['campus_id_name'=>'campus_name']); } public function classGrade(){ return $this->hasOne(ClassGrade::class, 'id', 'class_id')->joinType('left')->withField('class_name,id')->bind(['class_id_name'=>'class_name']); } public function member(){ return $this->hasOne(Member::class, 'member_id', 'user_id')->joinType('left')->withField('nickname,member_id')->bind(['user_id_name'=>'nickname']); } }