Я работаю с платформой API, Symfony и Dectrine. Я ожидаю JSON с объектом с моего фронта, что важно при получении данных из моего бэкэнда. Поскольку запросы get не/не должны иметь тело, я считаю, что операция post () - лучший способ достичь моей цели. Я добавил атрибут в свою сущность, который напоминает следующее: < /p>
Код: Выделить всё
#[ORM\Entity(repositoryClass: EntityRepository::class)]
#[ApiResource(
operations: [
new Post(
input: InputDto::class,
provider: StateProvider::class,
output: OutputDto::class,
uriTemplate: 'entity/{variable}',
uriVariables: ['variable' => 'variable'],
)
]
)]
< /code>
Мой поставщик состояний напоминает следующий пример: < /p>
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;
}
}
< /code>
Логика, кажется, работает просто отлично. Если я добавляю print_r ($ outputDto);
непосредственно перед оператором возврата, я получаю именно данные, которые ожидали. Но при выполнении запроса ответ - это просто тот же самый inputdto , который я отправил через тело запроса, а не возвращаемый $ outputDto поставщика. Единственные различия, заключающиеся в том, что мне не нужна была запрос Stack , чтобы получить входные данные, причем они находятся в параметрах метода Process () и мне необходимо изменить тип возврата процесса () на мой выход outputDto . То, что я получил, была ошибка, которая выглядела так: < /p>
Код: Выделить всё
"[Semantical Error] line 0, col 75 near 'property = :property_p1': Error: Class App\\Entity\\Entity has no field or association named property"
Я предполагаю, что есть какое -то отношение к доктрине, из -за ": Property_p1" , напоминающий то, что казалось бы параметром, который был установлен на запросе QueryBuilder , но, как я уже сказал, логик, включая мой DQL -запрос, казалось, что я не напечатал свои результаты, используя Print_R () . Pruce>. Pr>. Prue>. . Если я буду использовать контроллер, так как я читал, что они обескуражены в документации платформы API.>
Подробнее здесь:
https://stackoverflow.com/questions/769 ... g-an-input