Платформа API — сохранение идентификаторов OneToOne с использованием денормализацииPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Платформа API — сохранение идентификаторов OneToOne с использованием денормализации

Сообщение Anonymous »

Я пытаюсь использовать правильную нормализацию и денормализацию для отношения OneToOne, чтобы можно было сохранить идентификаторы этих столбцов без использования класс Processor.
По какой-то причине Company_id в CompanyLogo и Company_logo_url_id в Company — единственные, которые не сохраняются после запуска POST из сущности CompanyLogo?
Я опубликую свои определения групп и конечных точек, поскольку не знаю, в чем проблема. Правильно ли определены мои группы?
Буду признателен за помощь.
Субъект CompanyLogo:
#[Vich\Uploadable]
#[ORM\Entity]
#[ApiResource(
types: ['https://schema.org/MediaObject'],
operations: [
new Post(
uriTemplate: '/company/{companyId}/logo',
inputFormats: ['multipart' => ['multipart/form-data']],
uriVariables: [
'companyId' => new Link(
fromProperty: 'companyLogoUrl',
fromClass: Company::class
)
],
openapi: new Model\Operation(
requestBody: new Model\RequestBody(
content: new \ArrayObject([
'multipart/form-data' => [
'schema' => [
'type' => 'object',
'properties' => [
'file' => [
'type' => 'string',
'format' => 'binary'
]
]
]
]
])
)
),
)
],
outputFormats: ['jsonld' => ['application/ld+json']],
normalizationContext: ['groups' => ['companyLogo:read']],
denormalizationContext: ['groups' => ['companyLogo:write']],
)]
class CompanyLogo
{
// ... other fields

#[ORM\OneToOne(inversedBy: 'companyLogoUrl', targetEntity: Company::class)]
#[ORM\JoinColumn(name: 'company_id', referencedColumnName: 'id', unique: true, nullable: false)]
#[Groups(['companyLogo:read', 'companyLogo:write'])]
private ?Company $company = null;

Класс компании:
class Company
{
#[ORM\OneToOne(mappedBy: 'company', targetEntity: CompanyLogo::class, cascade: ['persist', 'remove'])]
#[ORM\JoinColumn(nullable: true)]
#[ApiProperty(types: ['https://schema.org/image'])]
#[Groups(['company:read', 'company:write'])]
public ?CompanyLogo $companyLogoUrl = null;

}


Подробнее здесь: https://stackoverflow.com/questions/786 ... malization
Ответить

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

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

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

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

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