У меня есть два связанных объекта в моем проекте Symfony, которые хранятся с использованием Doctrine.Один объект - это «Рекламодатель», у которого есть идентификатор и имя.Другая сущность, которая является причиной проблемы, предназначена для «Отчета», который имеет собственный идентификатор вместе с полем «advertiser_id».
При добавлении отчета для рекламодателя в форме SymfonyЯ использую EntityType для поля advertiser_id, чтобы я мог отображать выборку рекламодателей.Эта часть работает отлично, но когда я пытаюсь отправить форму, я получаю сообщение об ошибке, потому что она передает объект Advertiser вместо идентификатора рекламодателя в поле advertiser_id.
Вот что у меня есть в моей форместроитель:
$builder
->add('advertiser_id', EntityType::class, [
'class' => Advertiser::class,
'query_builder' => $this->advertiserRepository->findAllNotDeletedUnpaginated(),
'choice_label' => 'name',
])
->add('submit', SubmitType::class, [
'label' => 'Submit',
])
;
Когда я отправляю форму, я получаю эту ошибку: указан ожидаемый аргумент типа "целое число", "App \ Entity \ Advertiser".
Любое представление о том, как яможет заставить Symfony только пытаться сохранить идентификатор рекламодателя, который был выбран, а не пропустить весь рекламодатель?
ОБНОВЛЕНИЕ: Теперь, когда я реорганизовал его, чтобы рекламодатель былсвязанный объект для отчета, я пытаюсь выяснить, как сделать рекламодателя скрытым полем и получить его никуда.
Я пробовал код, упомянутый ранее iiirxs, с помощью преобразователя обратного вызова.- изменив рекламодатель на рекламодатель, но мне не повезло.Я читал сообщения вроде этого Symfony hiddenType, используя data_class для объекта вместо преобразователя , но у меня возникают проблемы с получением значения для рекламодателя так, как они получают параметры $ [[selected_course]] вэтот пример.
Когда я пытаюсь (для целей тестирования) жестко кодировать значение 1 для рекламодателя, а затем помещать его в форму, форма показывает, но при отправке я получаю сообщение об ошибке:
$advertiser=1;
$builder
->add('advertiser', HiddenType::class,['data' => $advertiser, 'data_class' => null])
Ошибка при отправке формы: ожидаемый аргумент типа "App \ Entity \ Advertiser or null", задана строка "*. 1025 *
Извините за избиение мертвой лошадиэтот.Кажется, что это должно быть настолько распространено / легко, но мне трудно найти способ сделать это скрытым полем.Любые идеи будут с благодарностью!