Платформа API Используйте Post, чтобы получить данные, используя входPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Платформа API Используйте Post, чтобы получить данные, используя вход

Сообщение Anonymous »

Я работаю с платформой 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»