我无法在Symfony2中获取一个公式,我希望在数组集合中排除某些值 - 或者我不得不说我不知道如何(在哪里排除它们)。
这是我的新标签行动:
public function newTagAction()
{
$tag = new Tag();
$form = $this->createForm(new tagType(), $tag);
return $this->render('MyMyBundle:Admin:newTag.html.twig', array('form' => $form->createView()));
}
和Tag.php实体,它与Movie和Vice verca有关的ManyToOne关系(Movie-> Tag = OneToMany):
class Tag
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\Column(type="string")
*/
protected $name;
/**
* @ORM\ManyToOne(targetEntity="Movie", inversedBy="videotags")
* @ORM\JoinColumn(name="movie_id", referencedColumnName="id")
*/
protected $movie;
// ...
在TagType.php表单中,它说:
class TagType extends AbstractType
{
public function buildForm(FormBuilder $builder, array $options)
{
$builder
->add('name')
->add('movie') // This is where certain movies should be excluded, it displays an array collection of all movies
;
}
任何帮助表示赞赏!
谢谢!
答案 0 :(得分:3)
您可以使用自定义查询来获取所需的结果。
在documents中对此进行了解释。这是一个简单的例子:
$builder->add('movie', 'entity', array(
'class' => 'MyMovieBundle:Movie',
'query_builder' => function(EntityRepository $er) {
return $er->createQueryBuilder('u')
->where('u.name = ?1');
},
));