Если вы посмотрите на запрос, который вызывает конечную точку creation-fields
, вы заметите, что идентификатор отсутствует даже в списке полей.
Черта ResolvesFields, используемая вашими ресурсами,вызов функции creationFields для генерации списка полей для отображения спереди, который вызывает removeNonCreationFields :
/**
* Remove non-creation fields from the given collection.
*
* @param \Illuminate\Support\Collection $fields
* @return \Illuminate\Support\Collection
*/
protected function removeNonCreationFields(Collection $fields)
{
return $fields->reject(function ($field) {
return $field instanceof ListableField ||
$field instanceof ResourceToolElement ||
$field->attribute === $this->resource->getKeyName() ||
$field->attribute === 'ComputedField' ||
! $field->showOnCreation;
});
}
И так как поле соответствует этому правилу:
$field->attribute === $this->resource->getKeyName()
Поле идентификатора удаляется.
Чтобы принудительно заполнить поле, вы можете перезаписать эту функцию в своем ресурсе:
/**
* Remove non-creation fields from the given collection.
*
* @param \Illuminate\Support\Collection $fields
* @return \Illuminate\Support\Collection
*/
protected function removeNonCreationFields(Collection $fields)
{
return $fields->reject(function ($field) {
return $field instanceof ListableField ||
$field instanceof ResourceToolElement ||
$field->attribute === 'ComputedField' ||
! $field->showOnCreation;
});
}