Код: Выделить всё
#[ORM\Entity(repositoryClass: EntityRepository::class)]
#[ApiResource(
operations: [
new Post(
input: InputDto::class,
provider: StateProvider::class,
output: OutputDto::class,
uriTemplate: 'entity/{variable}',
uriVariables: ['variable' => 'variable'],
)
]
)]
Код: Выделить всё
class StateProvider implements ProviderInterface
{
public function __construct(
private RequestStack $requestStack
)
{
$this->requestStack = $requestStack;
}
public function provide(Operation $operation, array $uriVariables = [], array $context = []): object|array|null
{
$variable = $uriVariables['variable'] ?? null;
// logic
$outputDto = new OutputDto($dataProcuredFromLogic);
return $outputDto;
}
}
Это заставляет меня задаться вопросом, возможно ли вообще то, чего я надеялся достичь.
Я пытался использовать процессор состояний вместо поставщика и использовал ту же самую логику. Единственное отличие заключается в том, что мне не нужен RequestStack для получения входных данных, поскольку он находится в параметрах методаprocess(), и мне пришлось изменить тип возвращаемого значения методаprocess() на мой OutputDto. Я получил ошибку, которая выглядела следующим образом:
Код: Выделить всё
"[Semantical Error] line 0, col 75 near 'property = :property_p1': Error: Class App\\Entity\\Entity has no field or association named property"
Я не уверен, стоит ли мне использовать контроллер, как я прочитали, что в документации платформы API это не рекомендуется.
Не могли бы вы помочь мне вернуть фактический желаемый результат?
Заранее благодарим вас за любую помощь, которую вы можете оказать!
Подробнее здесь: https://stackoverflow.com/questions/769 ... g-an-input
Мобильная версия