'integer', 'age' => 'integer', 'gender' => 'integer', 'campus_id' => 'integer', 'status' => 'integer', 'sort_order' => 'integer', 'created_at' => 'datetime', 'updated_at' => 'datetime', 'deleted_at' => 'datetime', ]; /** * 所属校区. */ public function campus(): BelongsTo { return $this->belongsTo(Campus::class, 'campus_id', 'id') ->where('status', 1) ->whereNull('deleted_at'); } /** * 按校区查询. */ public function scopeCampusId(Builder $query, int $campusId): Builder { return $query->where('campus_id', $campusId); } /** * 按科目查询. */ public function scopeSubject(Builder $query, string $subject): Builder { return $query->where('major_subject', 'like', "%{$subject}%"); } /** * 搜索教师. */ public function scopeSearch(Builder $query, string $keyword): Builder { return $query->where(function ($q) use ($keyword) { $q->where('name', 'like', "%{$keyword}%") ->orWhere('title', 'like', "%{$keyword}%") ->orWhere('major_subject', 'like', "%{$keyword}%") ->orWhere('introduction', 'like', "%{$keyword}%"); }); } /** * 查询启用的教师. */ public function scopeEnabled(Builder $query): Builder { return $query->where('status', 1); } }