如何将symfony2多选复选框值插入到数据库中

时间:2014-10-20 14:46:31

标签: php symfony doctrine symfony-2.3

我有一个包含几种类型字段的symfony2表单。 还有一个多选复选框,用于生成具有多个=> true和expanded => true的表单实体类型。

在数据库中存储所选值的最佳方法是什么? 以及编辑时如何在表格中填充选定的数据?

欣赏你的想法。

由于

1 个答案:

答案 0 :(得分:1)

我认为最好的做法是在您的实体之间建立多对多的关系,并在" formType"中添加指向您的目标实体的链接,您可以调用查询构建器来过滤复选框的选项(这里是#34;有效标签")。此类可用于添加和编辑 以下是2个实体的示例:产品和标签

实体/产品

   /**
     * @ORM\ManyToMany(targetEntity="Name\NameBundle\Entity\Tag",cascade={"persist"})
     * @ORM\JoinTable(name="product_tags")
     */
    private $tags;

窗体/ ProductType

 ->add('tags','entity',array("label"=>" your tags",'attr'=>array('class'=>'form-control'),
                                          'class'=>"Name\NameBundle\Entity\Tag",
                                          'property'=>'name',
                                          'multiple'=>true,
                                          'expanded'=>true,
                                          'required'=>false,
                                          'query_builder'=>function(ER $er){
                                            return $er->getActiveTags();
                                          }))