Почему я получаю несоответствие типа в своей форме 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);
Если это актуально, $ request - это 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
Я и ожидаю, что при подаче объект handleRequest должен загружать объект $ thisopsession с обновленными данными формы и то, что я прочитал из сообщения об ошибке, это то, что вместо передачи «полоса» от формы к сбору свойств класса, handleRequest для передачи полосы. Правильно, и данные post есть, как и я ожидал, поэтому я не уверен, почему 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,
]);
и заменил entitytype с помощью choicetype :

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

->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»