Почему я получаю несоответствие типа в своей форме Symfony, используя EntityType при использовании HandleRequest?Php

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Почему я получаю несоответствие типа в своей форме Symfony, используя EntityType при использовании HandleRequest?

Сообщение Anonymous »

В моем приложении у меня есть форма, сгенерированная с использованием класса, как SO: < /p>

Код: Выделить всё

    public function buildForm(FormBuilderInterface $builder, array $options): void
{
$builder
->add('id', HiddenType::class, [])

->add('band', EntityType::class, [
'class' => Band::class,
'choice_label' => 'band',
'choice_value' => 'band',
'attr' => ['class' => 'py-2 px-4 ml-2 mt-1 border border-gray-300']
])
->add('mode', TextType::class, [
'attr' => ['class' => 'w-full py-2 px-4 ml-2 mt-1 border border-gray-300']
])
->add('frequency', NumberType::class, [
'scale' => 4,
'invalid_message' => 'The frequency is invalid.',
'attr' => ['class' => 'w-full py-2 px-4 ml-2 mt-1 border border-gray-300']
])
->add('comments', TextareaType::class, [
'attr' => ['class' => 'w-full py-2 px-4 ml-2 mt-1 border border-gray-300']
])
->add('submit', SubmitType::class, [
'attr' => ['class' => 'rounded-md font-bold border py-2 px-4 mx-auto bg-blue-500',
'onclick' => 'SubmitOpSession'],
])
;

}
< /code>
Некоторые поля опущены ... Форма создается в контроллере: < /p>
        $form = $this->createForm(MyFormType::class, $ThisOpSession, [
'attr' => ['class' => 'w-full'],
'action' => $this->generateUrl('myendpoint'),
]);

$form->handleRequest($Request);
< /code>
Если он актуален, $ запрос - это объект HTTPFoundation.  При отправке (post) с данными формы я получаю: < /p>
App\Entity\OpSession::setBand(): Argument #1 ($band) must be of type string, App\Entity\Band given, called in /var/www/rtqm/vendor/symfony/property-access/PropertyAccessor.php on line 532
< /code>
Я и ожидаю, что при отправке HandleRequest должен загружать объект $ thisopsession с обновленными данными формы, и то, что я прочитал из сообщения об ошибке, является то, что вместо того, чтобы передавать выбор «полосы» из формы к сбору свойств класса, HandLeRequest является прохождение объекта группы. Я не уверен, почему у HandleRequest есть проблемы с ним. 
Чего мне не хватает?        $BandRepo = $entityManager->getRepository(Band::class);
$Bands = $BandRepo->findAll();

$form = $this->createForm(OpSessionFormType::class, $ThisOpSession, [
'attr' => ['class' => 'w-full'],
'action' => $this->generateUrl('osmanager'),
'bands' => $Bands,
]);
< /code>
и заменил EntityType на choicetype: < /p>
->add('band', ChoiceType::class, [
'choices' => $options['bands'],
'choice_label' => 'band',
'choice_value' => 'band',
])
Все еще получает ту же ошибку.

Подробнее здесь: https://stackoverflow.com/questions/795 ... e-when-usi
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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