enumClass; } /** * Get the filter that can be applied to the field. * * @return Filter */ public function getFilter(): Filter { return new EnumFilter($this->getKey(), $this->enumClass, $this->getColumn()); } /** * Determine if the field should be displayed to the user. * * @param Query $query * @return bool */ public function shouldRender(Query $query): bool { $criteria = $query->getFieldCriteria($this->schema->type()); return $criteria === null || $criteria->isAllowedField($this->getKey()); } /** * Get the value to display to the user. * * @param Model $model * @return string|null */ public function render(Model $model): ?string { $enum = $model->getAttribute($this->getColumn()); return $enum?->localize(); } /** * Determine if the field should be included in the select clause of our query. * * @param Query $query * @param Schema $schema * @return bool */ public function shouldSelect(Query $query, Schema $schema): bool { $criteria = $query->getFieldCriteria($this->schema->type()); return $criteria === null || $criteria->isAllowedField($this->getKey()); } /** * Get the sort that can be applied to the field. * * @return Sort */ public function getSort(): Sort { return new Sort($this->getKey(), $this->getColumn()); } }