* @return string */ protected function getStatusField(): string { return $this->status_field ?? 'status'; } /** * Notes : 获取各状态的名称 * * @Date : 2021/5/27 11:50 上午 * @Author : < Jason.C > * @return string[] */ protected function getStatusMap(): array { $status_map = [ 0 => '待审核', 1 => '正常', 2 => '驳回', 3 => '关闭', ]; if (defined(get_class($this)."::STATUS")) { $statusData = constant(get_class($this)."::STATUS"); if (isset($this->status_map) && ! empty($this->status_map)) { $status_map = $this->status_map; } elseif ($statusData) { $status_map = $statusData; } } return $status_map; } /** * 正常显示的数据 * * @Author: * @Date :2021-04-09 * @param \Illuminate\Database\Eloquent\Builder $query * @return \Illuminate\Database\Eloquent\Builder */ public function scopeShown(Builder $query): Builder { return $query->where($this->getStatusField(), 1); } /** * 不显示的数据 * * @Author : * @Date :2021-04-09 * @param \Illuminate\Database\Eloquent\Builder $query * @return \Illuminate\Database\Eloquent\Builder */ public function scopeHidden(Builder $query): Builder { return $query->where($this->getStatusField(), 0); } /** * Notes : 状态查询 * * @Date : 2021/6/28 10:25 上午 * @Author : < Jason.C > * @param \Illuminate\Database\Eloquent\Builder $query * @param int $status * @return \Illuminate\Database\Eloquent\Builder */ public function scopeOfStatus(Builder $query, int $status): Builder { return $query->where($this->getStatusField(), $status); } /** * Notes : 获取状态的文本信息 * * @Date : 2021/4/25 2:10 下午 * @Author : < Jason.C > * @return string */ public function getStatusTextAttribute(): string { $map = $this->getStatusMap(); return $map[$this->{$this->getStatusField()}] ?? '未知'; } }