Intereting Posts
Группировка и сумма элементов из массива в пределах foreach Пользовательские URL-адреса – предоставление каждому пользователю URL-адреса % 2F в URL-адресах и не ссылается на требуемый файл .php Каков наилучший способ использования / хранения ключей шифрования в MySQL удалить массив «wrapping» (удалить родительский, сохранить дочерние элементы) Как петля в многомерном массиве в PHP? Отправляйте деньги на любую учетную запись PayPal и получайте уведомление об оплате что было бы правильным способом автоматизации импорта xml PHP preg_split при сохранении разделителя в начале элемента массива В PHP что означает | = mean, that is pipe равно (не восклицание) Как развернуть результаты запроса для бесконечного прокрутки? Порядок выполнения Sql CActiveForm и его поведение не имеют метода или закрытия с именем «getErrors». вставить все данные $ _POST в mysql с помощью PHP? PHP в HTML-странице, Super Quick Advice

Как установить значение по умолчанию в поле выбора symfony2 с данными из базы данных

У меня есть этот код

->add('user', 'entity', array( 'class' => 'Acme\Entity\User', 'query_builder' => function(EntityRepository $er) use ($options) { return $er->createQueryBuilder('u') ->orderBy('u.name', 'ASC'); }, 'data' => $option['id'] )) 

Это не работает

 public function buildForm(FormBuilderInterface $builder, array $options) { $builder ->add('description') ->add('user', 'entity', array( 'class' => 'Acme\Entity\User', 'query_builder' => function(EntityRepository $er) use ($options) { return $er->createQueryBuilder('u'); }, 'preferred_choices' => array('2') )) ; } 

Related of "Как установить значение по умолчанию в поле выбора symfony2 с данными из базы данных"

Вы можете использовать одно из следующих действий:

  1. Задайте значение по умолчанию для объекта

     $cl->setUser($this->getDoctrine()->getEntityManager()->getReference('Acme:User',2)); 
  2. Используйте предпочтительный вариант выбора в построителе форм:

     'preferred_choices' => array('2') 
  3. Или установите 'property_path' => false и используйте 'data' => YourDefaultEnity

Форма должна автоматически сопоставить значение user-> id с выбранным полем выбора объекта. Например, если у вас есть объект Computer, у которого есть отношение OnetoOne с объектом User в таблице соединений, называемой «computer_users»:

 class Computer{ private $user; /** * @ORM\OneToOne(targetEntity="ComputerUser", mappedBy="computer") */ private $computerUsers; public function getUser(){ return $computerUsers->getUser(); } private function getComputerUser(){ return $this->$computerUsers; } } 

Поле «пользователь» в классе формы должно получить значение user-> id из объекта атрибута «пользователь» в классе «Компьютер», переданном в форму.

Кроме того, вы можете явно установить значение, явно передав объект пользователя в форму с помощью SetData ():

  $computerForm = $this->createForm( new ComputerForm(), $computer ); $user = $computer->getComputerUser()->getUser(); $computerForm->get('user')->setData( $user ); return $this->render( 'AcmeBundle:Computer:edit.html.twig' , array( 'computer' => $computer , 'computerForm' => $computerForm->createView() ) );