Symfony4 / Doctrine - сопоставление атрибута данных формы _id непосредственно с сущностью - PullRequest
0 голосов
/ 04 июня 2018

Я пытаюсь отправить запрос POST, содержащий, помимо прочего, «company_id».

Я хочу сопоставить это свойству со значением «Company» сущности Doctrine / Symfony4.Это поле хранится в столбце «company_id».

Моя форма довольно ванильная и использует следующее для отображения входящего запроса:

        ->add('company_id', EntityType::class, [
            'class' => Company::class,
        ])

Проблема в том, что мой класс модели имеет толькометоды 'getCompany' и 'setCompany', которые приводят к следующей ошибке:

{
    "code": 500,
    "message": "Neither the property \"company_id\" nor one of the methods \"getCompanyId()\", \"companyId()\", \"isCompanyId()\", \"hasCompanyId()\", \"__get()\" exist and have public access in class \"App\\ServiceProviderBundle\\Entity\\Offer\"."
}

Я сделал обходной путь, создав некоторые прокси-методы (например, 'getCompanyId', который напрямую обращается к 'getCompany'),но это кажется хакерским и неправильным, и должен быть способ сделать это отображение напрямую.

Ответы [ 2 ]

0 голосов
/ 05 июня 2018

Решение - я создал промежуточный класс 'Data Transfer Object', чтобы сделать отображение для меня.У него есть функция getOfferEntity (), которая возвращает объект Object.

0 голосов
/ 04 июня 2018

попробуйте это:

 ->add('company', EntityType::class, [
      'class' => Company::class,
 ])

Поскольку я думаю, что в вашей сущности есть свойство с именем company, а не company_id, company_id - это имя столбца в вашей базе данных

...