Symfony 2 Создайте поле формы сущности с 2 свойствами
Я использую symfony2 и у меня есть форма, чтобы сохранить отношение одного пользователя к некоторым правилам. Эти правила устанавливаются администратором компании. В этой форме после того, как я выбрал пользователя для обновления, я должен выбрать, по какому правилу у этого пользователя есть разрешение.
Проблема в том, что у меня может быть более одного правила с тем же именем (это другая сущность), но значения разные. Итак, когда я собираю selectbox, я должен показать имя и значение, например:
- Количество предметов - 10
- Количество предметов - 20
- Стоимость предмета - 200
- Стоимость предмета - 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
вариант в любой форме.