Symfony Значение SELECT - PullRequest
       0

Symfony Значение SELECT

0 голосов
/ 01 апреля 2020

У меня есть Select, который получает список строк, но мне нужно вставить в базу данных их идентификатор, а не их имя. Я работаю по symfony 4.2. В своей форме я использую это (что работает):

    $builder
        ->add('cours', EntityType::class, array(
          'class' => Cours::class,
          'label' => false,
          'placeholder' => 'Cours',
          'required' => true,
          'choice_label' => 'nomUe',
          'choices' => $formation->getCours(),
          'attr' => array('class' => 'custom-select')
        ))
Я посмотрел документацию и хочу вставить что-то подобное

          'choice_value' =>  $formation->getId(),
Но это дает мне ошибку вроде: enter image description here

А идея? Спасибо!

1 Ответ

0 голосов
/ 02 апреля 2020

на самом деле вы, вероятно, переопределили метод __toString в вашей сущности Class ... вот почему у вас есть имя в визуальном виде в форме ... но в базе данных он будет записывать ID вашей сущности.

поэтому вы должны удалить выбор строк в вашей форме ... так что в конце ваша форма должна выглядеть следующим образом:

    $builder
        ->add('cours', EntityType::class, array(
          'class' => Cours::class,
          'label' => false,
          'placeholder' => 'Cours',
          'required' => true,
          'choice_label' => 'nomUe',
          'attr' => array('class' => 'custom-select')
        ))

Однако ... Я полагаю, что ваш метод __toString, который находится в Сущность Class выглядит следующим образом:

public function __toString()
    {
      return $this -> getName() ;
    }

, поэтому, если вы предпочитаете указывать идентификатор Id, а не имя объекта в форме, вам необходимо отобразить его:

public function __toString()
    {
      return  (String) $this -> getId() ;
    }

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...