Задать вопрос
s0lar
@s0lar

Как правильно использовать EntityType в Symfony4?

У меня есть две Entiny: "Member" и "DepartmentPo".
"Member" содержит поле poId, которое указывает на "DepartmentPo".
namespace App\Entity;
 
class Member
{ 
 /**
   * @ORM\Column(type="integer", nullable=true)
   */
  private $poId;


При создании новой "Member" через форму добавляю поле "poId" с типом EntityType, указывающим на "DepartmentPo"

Добавляю поле.
$builder
->add('poId', EntityType::class, array(
    'class' => DepartmentPo::class,
    'choice_label' => 'title',
    'placeholder' => '..не выбрано..',
    'empty_data' => null,
    'required' => false,
    'label' => 'Первичное отделение',
))


В форме список "DepartmentPo" загружается нормально. При сабмите формы в поле "poId" подставляется выбранные объект

Member {#7045 ▼
  -id: null
  -poId: DepartmentPo {#9884 ▼
    -id: 23000009
    -moId: 23000
    -title: "Абинское №9"
    -titleMo: "23000"
  }
}


Но при попытке сохранить в базу новую запись "Member", выдается ошибка
Notice: Object of class App\Entity\DepartmentPo could not be converted to int


И сам запрос
'INSERT INTO member (ro_id, mo_id, po_id)
VALUES (?, ?, ?, ?)'
with params [23, 23000, {}, 6]:


И получается, что у меня объект, а должно быть ID объекта.

В связи с эти у меня вопрос, как правильно использовать EntityType, чтобы сохранение работало?
  • Вопрос задан
  • 146 просмотров
Подписаться 1 Средний 4 комментария
Решения вопроса 1
Minifets
@Minifets
Hello world!!!
s0lar, JoinColumn и Column - несовместимые аннотации, одна другую затирает. Чтобы правильно работал EntityType у поля надо прописать связь ManyToOne или OneToOne.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы