私は数時間これに固執しています。configureListFieldsのSonata Adminカスタムクエリ
私はすべてのカテゴリを一覧表示するには、管理者クラスがあり、1つのテーブルの列に関連製品(Productエンティティ)があります。Table example 関連コードは:私がする必要がどのような
protected function configureListFields(ListMapper $listMapper)
{
$listMapper
->addIdentifier('name')
->add('products') // Entity Product, @ORM\OneToMany
->add('ord')
;
}
が記載されているされることから、非アクティブの製品を隠しています"(boolean)product.active"に基づいていますが、わかりません。私は "createQuery"メソッドについて知っていますが、動作しません。 SQLを生成して直接クエリを実行すると、ここではカテゴリをフィルタリングするためにProxyQueryを使用できるように見えますが、すべての製品は別のクエリでクエリされます(この別のクエリは変更方法がわかりません)。
public function createQuery($context = 'list')
{
$query = parent::createQuery($context);
$q = new ProxyQuery($query->join(sprintf('%s.products', $query->getRootAlias()), 'p')
->andWhere('p.active = :act')->setParameter('act', true));
return $q;
}
は、あなたがNULLまたはエンティティと使用クエリーを適応させることquery_builder optionを追加するには、フィールドの種類を変更することができます任意の助け
おかげでいくつかの情報がありますが、私はまだそれを動作させることはできません。 'query_builder'は何らかの形で使用されていないようです。私はdie()を入れてみました。その機能では何も起こりません。 –
名前だけでなく、EntityRepositoryへのパスを必ず含めてください:)それは私の魅力のように働いていました – Cowwando