Как настроить контекст с помощью специального StateProvider ⇐ Php
-
Anonymous
Как настроить контекст с помощью специального StateProvider
Чтобы объяснить мою проблему, я создал очень простой ApiResource, который использует собственный поставщик состояний.
#[ApiResource( типы: 'https://schema.org/UpdateAction', поставщик: TransitionStateProvider::класс, )] переход класса { #[ApiProperty( идентификатор: правда, типы: ['https://schema.org/identifier'], )] общественный int $id; } Мой поставщик штата:
Класс TransitionStateProvider реализует ProviderInterface { публичная функция обеспечить (операция $operation, массив $uriVariables = [], массив $context = []): объект|массив|null { $переход = новый переход(); $переход->id = 1; вернуть $переход; } } Когда я отправляю запрос на получение, @context, @id, @types устанавливаются не так, как хотелось бы. Я получил:
{ "@context": { "@vocab": "https://localhost/docs.jsonld#", "гидра": "http://www.w3.org/ns/hydra/core#" }, "@type": "Переход", "@id": "/.well-known/genid/66dae3d5fb3332ca13ee", "идентификатор": 1 } Что я хочу:
{ "@context": "/contexts/Transition", "@id": "/transitions/1", "@type": "https://schema.org/UpdateAction", "идентификатор": 1 } Он работает с другими моими ресурсами, но они связаны с объектом доктрины с помощью stateOptions. Этот ресурс Transition нет.
Я пытался настроить identifier:true в ApiProperty, я пытался поиграть с uriTemplate, urivariables и hydraContext безуспешно.
Чтобы объяснить мою проблему, я создал очень простой ApiResource, который использует собственный поставщик состояний.
#[ApiResource( типы: 'https://schema.org/UpdateAction', поставщик: TransitionStateProvider::класс, )] переход класса { #[ApiProperty( идентификатор: правда, типы: ['https://schema.org/identifier'], )] общественный int $id; } Мой поставщик штата:
Класс TransitionStateProvider реализует ProviderInterface { публичная функция обеспечить (операция $operation, массив $uriVariables = [], массив $context = []): объект|массив|null { $переход = новый переход(); $переход->id = 1; вернуть $переход; } } Когда я отправляю запрос на получение, @context, @id, @types устанавливаются не так, как хотелось бы. Я получил:
{ "@context": { "@vocab": "https://localhost/docs.jsonld#", "гидра": "http://www.w3.org/ns/hydra/core#" }, "@type": "Переход", "@id": "/.well-known/genid/66dae3d5fb3332ca13ee", "идентификатор": 1 } Что я хочу:
{ "@context": "/contexts/Transition", "@id": "/transitions/1", "@type": "https://schema.org/UpdateAction", "идентификатор": 1 } Он работает с другими моими ресурсами, но они связаны с объектом доктрины с помощью stateOptions. Этот ресурс Transition нет.
Я пытался настроить identifier:true в ApiProperty, я пытался поиграть с uriTemplate, urivariables и hydraContext безуспешно.
Мобильная версия