1

Symfony2 で、配列コレクション内の特定の値を除外したいフォーミュラーを取得するのに問題があります。または、方法 (どこで除外するか) がわからないと言わざるを得ません。

これは私の 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()));

}

また、Tag.php エンティティは、Movie に対して 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 
    ;
}

どんな助けでも大歓迎です!

ありがとう!

4

1 に答える 1

3

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

ドキュメントで説明されています。簡単な例を次に示します。

$builder->add('movie', 'entity', array(
    'class' => 'MyMovieBundle:Movie',
    'query_builder' => function(EntityRepository $er) {
        return $er->createQueryBuilder('u')
            ->where('u.name = ?1');
    },
));
于 2012-03-21T18:17:51.703 に答える