Intereting Posts

Symfony 2 Создайте поле формы объекта с двумя свойствами

Я использую symfony2 и имею форму, чтобы сохранить отношение одного пользователя к некоторым правилам. Эти правила устанавливаются администратором пользователя. В этой форме после того, как я выбрал пользователя для обновления, я должен выбрать, какое правило у этого пользователя есть разрешение.

Проблема в том, что у меня может быть более одного правила с тем же именем (это другой объект), но значения разные. Поэтому, когда я создаю selectbox, я должен показать имя и значение, как:

  1. Количество предметов – 10
  2. Количество предметов – 20
  3. Стоимость предмета – 200
  4. Стоимость предмета – 500

Но теперь я могу показать без значения «- $», используя следующий код:

$form = $this->createFormBuilder()->add('myinput', 'entity', array( 'class' => 'myBundle:Rule', 'property' => 'childEntity.name', 'label' => 'Filas Permitidas', 'expanded' => false, 'multiple' => true, 'choices' => $this->getDoctrine() ->getRepository('MyBundle:Rule') ->findAll(), 'required' => true, ))->getForm(); 

Итак, как свойство я хотел получить $myEntity->getChildEntity()->getName() и $myEntity->getValue() .

Есть ли способ сделать это?

Да, определите метод getUniqueName() в классе сущности, например:

 public function getUniqueName() { return sprintf('%s - %s', $this->name, $this->value); } 

И отредактируйте параметр формы property :

 'property' => 'childEntity.uniqueName', 

Вы также можете опустить параметр property и определить __toString() таким же образом, чтобы не повторять настройку параметра property в каждой форме.