Код: Выделить всё
#[ApiResource(
uriTemplate: '/companies/{companyId}/employees',
uriVariables: [
'companyId' => new Link(fromClass: Company::class, toProperty: 'company'),
],
operations: [ new GetCollection() ]
)]
Документация платформы API не содержит примера этого.
Вы можете сказать, что это знак, и я бы ответил, что это не первый раз, когда документация платформы API немного легковесна... Даже если был достигнут большой прогресс
В любом случае, я экспериментировал с этой конфигурацией.
Код: Выделить всё
#[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;
}
}
Это проблема.
Если я хочу сохранить третий адрес для того же работника, я получаю приятную ошибку:
Код: Выделить всё
{
"@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": "->"
},
// ...
]
}
Можно ли использовать новую ссылку в конфигурации uriVariable для операции POST? Если да, то является ли это хорошей практикой? Если да, то как мне его настроить, чтобы эта ошибка больше не появлялась?
Спасибо за помощь.
Подробнее здесь: https://stackoverflow.com/questions/797 ... st-operati
Мобильная версия