Symfony 2 创建具有 2 个属性的实体表单字段

2022-08-30 23:12:16

我正在使用symfony2,并且有一个表单来保存一个用户与某些规则的关系。这些规则由公司的管理员用户设置。在此表单中,在选择要更新的用户后,我必须选择此用户具有权限的规则。

问题是,我可能有多个具有相同名称的规则(这是另一个实体),但值不同。因此,当我构建选择框时,我必须显示名称和值,如下所示:

  1. 商品数量 - 10
  2. 商品数量 - 20
  3. 物品价值 - 200
  4. 物品价值 - 500

但现在我可以使用下面的代码显示没有“-$value”:

$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


答案 2

推荐