Я пытаюсь использовать правильную нормализацию и денормализацию для отношения 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
Платформа API — сохранение идентификаторов OneToOne с использованием денормализации ⇐ Php
Кемеровские программисты php общаются здесь
1719928039
Anonymous
Я пытаюсь использовать правильную [b]нормализацию[/b] и [b]денормализацию[/b] для отношения 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;
}
Подробнее здесь: [url]https://stackoverflow.com/questions/78697370/api-platform-saving-onetoone-ids-using-denormalization[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия