0

私はsymfony(2.1)を初めて使用しますが、単純な問題があります。「エンティティフィールドタイプ」がフォームの選択タグで選択リストを生成する方法を変更したいと思います。

私のcategoryType.phpのbuildFormメソッドには、次のようなものがあります。

$builder
   ->add('parent', 'entity', array(
   'class' => 'TestAdvBundle:Category',
   'property' => 'name',
   'label'  => 'label.parent',
))
;

これは正常に機能し、dbに永続化されるすべてのCategoryエンティティは、生成された形式でselectタグに存在します。しかし、私がやりたいのは、この生成された選択リストを少し変更することです。実際、リストに「ルートカテゴリ」を表す「偽の」選択肢が1つ必要であり、編集したオブジェクトをここにリストしたくない(このフィールドは親IDであり、編集されたオブジェクトと同じオブジェクトタイプを指している) 、など。このフィールドは私が編集するカテゴリの親カテゴリであるため、実際には、親カテゴリとして自分自身を選択できるようにしたくありません)。

findAll()この「エンティティフィールドタイプ」は、リポジトリメソッドを使用して結果を取得していると思います。findAllForList()そこで、必要な配列を返す特定のメソッドを作成しました。しかし、「エンティティフィールドタイプ」に。の代わりにリポジトリメソッドを使用するように指示する方法が見つかりませんfindAll()

4

1 に答える 1

2

エンティティフィールドタイプで提供されるQuerybuilderオプションとempty_fieldメソッドを使用できます。 http://symfony.com/doc/master/reference/forms/types/entity.html#query-builder

クエリビルダーは、「エンティティのカスタムクエリの使用」の下のリンクされたURLで説明されています

于 2013-01-02T21:16:18.020 に答える