2012-03-21 7 views
1

Symfony2でアレイコレクション内の特定の値を除外したいというフォーミュラを手に入れることができません - あるいは、 。ManytoOne Array Colletion/Formbuilderの特定の値を除外します

これは私のnewTag処置:

public function newTagAction() 
{ 
    $tag = new Tag(); 
    $form = $this->createForm(new tagType(), $tag); 
    return $this->render('MyMyBundle:Admin:newTag.html.twig', array('form' => $form->createView())); 

} 

や映画にManyToOne関係と逆もまた同様に(Movie->タグ= OneToMany)はTag.phpエンティティ、:で

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 
    ; 
} 

何か助けてください!

ありがとうございます!

答えて

3

カスタムクエリを使用して、必要な結果のみを取得することができます。

documentsで説明しています。ここに簡単な例があります:

$builder->add('movie', 'entity', array(
    'class' => 'MyMovieBundle:Movie', 
    'query_builder' => function(EntityRepository $er) { 
     return $er->createQueryBuilder('u') 
      ->where('u.name = ?1'); 
    }, 
)); 
+0

こんにちは。上記の行を追加しただけで、 "Catchable Fatal Error:引数1がMy \ MyBundle \ Form \ {closure}に渡されました()は、My \ MyBundle \ Form \ EntityRepositoryのインスタンス、ME \ MEBundle \ Repositoryのインスタンスでなければなりません\ MovieRepositoryが指定されています...名前空間を追加する必要はありますか? – Mike

+0

nevermind ... Doctrine \ ORM \ EntityRepository;を使用してください;-) THANKS!+1 – Mike

関連する問題