С помощью Apiplatform правильно использовать конфигурацию по мочеиспусканию через новую ссылку для операции пост?Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 С помощью Apiplatform правильно использовать конфигурацию по мочеиспусканию через новую ссылку для операции пост?

Сообщение Anonymous »

В документации платформы API о Subresources этот пример конфигурации приведен для операции GetCollection. И это работает отлично. < /P>

Код: Выделить всё

#[ApiResource(
uriTemplate: '/companies/{companyId}/employees',
uriVariables: [
'companyId' => new Link(fromClass: Company::class, toProperty: 'company'),
],
operations: [ new GetCollection() ]
)]
В моем случае направление отношений одинаково, и я хотел настроить операцию пост таким же образом, в частности, на мочеиспускание, чтобы использовать информацию о метаданных/ссылке в моем процессоре. Но на самом деле я не знаю, предназначена ли эта новая ссылка для использования в операции после.#[Post(
uriTemplate: '/workers/{workerId}/addresses',
uriVariables: [
'workerId' => new Link(fromClass: worker::class, toProperty: 'worker'),
],
input: AddressInputDto::class,
processor: AddressStateProcessor::class
)]
class Address
{
#[ORM\Id, ORM\Column, ORM\GeneratedValue]
public ?int $id;

#[ORM\Column]
public string $addressblablabla;

#[ORM\ManyToOne(inversedBy: 'addresses')]
public ?Worker $worker = null;

public function getId()
{
return $this->id;
}
}
< /code>
И это работает! Но только один раз на работника. Это проблема.
Если я хочу сохранить второй адрес для одного и того же работника, я получаю хорошую ошибку: < /p>
{
"@context": "/contexts/Error",
"@id": "/errors/500",
"@type": "Error",
"title": "An error occurred",
"detail": "More than one result was found for query although one row or none was expected.",
"status": 500,
"type": "/errors/500",
"trace": [
{
"file": "/app/vendor/api-platform/doctrine-orm/State/ItemProvider.php",
"line": 90,
"function": "getOneOrNullResult",
"class": "Doctrine\\ORM\\AbstractQuery",
"type": "->"
},
// ...
]
}
< /code>
Итак, у меня есть несколько вопросов:
можно ли использовать новую ссылку в конфигурации мочеиспускания для операции пост? Если да, то это хорошая практика? Если да, то как мне настраивать его, чтобы больше не иметь этой ошибки?
Спасибо за вашу помощь.

Подробнее здесь: https://stackoverflow.com/questions/797 ... a-new-link
Ответить

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

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

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

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

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