在您的帖子实体中需要添加以下字段:
/**
* @ORM\ManyToMany(targetEntity="Com\YourBundle\Entity\Category", inversedBy="postcatagory")
* @ORM\JoinTable(name="postcategoryinfo",
* joinColumns={@ORM\JoinColumn(name="post_id", referencedColumnName="id")},
* inverseJoinColumns={@ORM\JoinColumn(name="category_id", referencedColumnName="id")}
* )
*/
private $category;
/**
* @ORM\ManyToMany(targetEntity="Com\YourBundle\Entity\Tag", inversedBy="posttag")
* @ORM\JoinTable(name="posttaginfo",
* joinColumns={@ORM\JoinColumn(name="post_id", referencedColumnName="id")},
* inverseJoinColumns={@ORM\JoinColumn(name="tag_id", referencedColumnName="id")}
* )
*/
private $tag;
在您的类别实体中:
/**
* @ORM\ManyToMany(targetEntity="Com\YourBundle\Entity\Post", mappedBy="category")
*/
private $postcategory;
在您的标签实体中:
/**
* @ORM\ManyToMany(targetEntity="Com\YourBundle\Entity\Post", mappedBy="tag")
*/
private $posttag;
在您的帖子类型中:
->add('category', NULL, array(
'label' => 'Category',
'class' => 'YourBundle:Category',
'property' => 'category_name', // Whatever your field name
}))
->add('tag', NULL, array(
'label' => 'Tag',
'class' => 'YourBundle:Tag',
'property' => 'tag_name', // Whatever your field name
}))
现在您可以按照自己的方式在 twig 中呈现您的 Post 表单。它将在使用多选组合创建和编辑时发挥作用。