getKey(), $this->getColumn()); } public function shouldRender(Query $query): bool { $criteria = $query->getFieldCriteria($this->schema->type()); return ! $criteria instanceof Criteria || $criteria->isAllowedField($this->getKey()); } public function render(Model $model): mixed { return $model->getAttribute($this->getColumn()); } public function shouldSelect(Query $query, Schema $schema): bool { // We can only exclude ID fields for top-level models that are not including related resources. $includeCriteria = $query->getIncludeCriteria($this->schema->type()); if ( $this->schema->type() === $schema->type() && (! $includeCriteria instanceof \App\Http\Api\Criteria\Include\Criteria || $includeCriteria->getPaths()->isEmpty()) ) { $criteria = $query->getFieldCriteria($this->schema->type()); return ! $criteria instanceof Criteria || $criteria->isAllowedField($this->getKey()); } return true; } }