【问题标题】:symfony2 Entity select tag displaysymfony2 实体选择标签显示
【发布时间】:2014-01-09 14:32:26
【问题描述】:

我有这个带有 ManyToMany 关系的 Symfony 表单工作正常,它显示了实体 Party 上具有属性 name 的所有各方。

提交后,它会根据选择的各方查询数据库并检索受邀参加这些各方的人员。

public function buildForm(FormBuilderInterface $builder, array $options) {
    $builder
            ->add('parties', 'entity', array(
                'class' => 'ProtoBundle:Party',
                'multiple' => true,
                'expanded' => false,
                'property' => 'name',
                'required' => false,));
}

带参数

'multiple' => 'true,

所有各方同时显示在一个选择下拉框中(不是我想要的)。

我想要的只是有一个带有参数的选择标签

'empty_value' => 'choose a party'

,然后当用户单击它时,将显示值。其实我可以用参数做到这一点

'multiple'=> false,

但问题是我收到此错误消息:

属性“party”和方法“setParties()”、“__set()”或“__call()”都不存在,并且在“Acme\ProtoBundle\Entity\Person”类中具有公共访问权限。

有谁知道如何使这个选择标签工作并给我一个详细的解决方案?

【问题讨论】:

    标签: symfony


    【解决方案1】:

    首先你应该考虑到,如果你真的需要多对多关系,而你想要没有多选的简单选择框。

    但是……

    在实体中,您必须检查 comming 值是否为数组,仅此而已:

    public function setParties($parties) 
    {
        if (!is_array($parties)) {
            $parties = array($parties);
        }
        $this->parties = $parties;
    }
    

    【讨论】:

      猜你喜欢
      • 2014-06-30
      • 2023-03-09
      • 1970-01-01
      • 1970-01-01
      • 2016-07-02
      • 1970-01-01
      • 1970-01-01
      • 2017-10-31
      • 2013-12-07
      相关资源
      最近更新 更多