Symfony 2 Создайте поле формы сущности с 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(),

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

1 ответ

Решение

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

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

И редактировать property вариант формы:

'property' => 'childEntity.uniqueName',

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

Другие вопросы по тегам