configureListFields の sonataadmin でカスタムクエリを作成することは可能ですか? .
この関数で:
protected function configureListFields(ListMapper $listMapper)
{
$listMapper
->>add(....
;
}
ありがとう !
configureListFields の sonataadmin でカスタムクエリを作成することは可能ですか? .
この関数で:
protected function configureListFields(ListMapper $listMapper)
{
$listMapper
->>add(....
;
}
ありがとう !
createQuery
次のようにメソッドをオーバーライドする必要があります( source ):
public function createQuery($context = 'list')
{
$query = parent::createQuery($context);
// this is the queryproxy, you can call anything you could call on the doctrine orm QueryBuilder
$query->andWhere(
$query->expr()->eq($query->getRootAlias().'.username', ':username')
);
$query->setParameter('username', 'test'); // eg get from security context
return $query;
}
SELECT
私の知る限り、クエリの一部を変更することはできず、使用することもできません。これはGROUP BY
、Sonata が内部でこのクエリを少なくとも 2 回実行するためです。まず、クエリが返す行数をチェックします。次に、このクエリをページ分割して実行します。
createQuery($context = 'list')
Tautrimas が言ったように、管理者クラスで関数をオーバーライドできます。
次のように、クエリの SELECT 部分を変更してみることができます。
$query = parent::createQuery($context);
$query->add('select', 'm', false );
$query->add('from', 'Toto\MyBundle\Entity\MyEntity m', false );
add 関数の 3 番目のパラメーターは、クエリ部分を追加するか置換するかを選択するブール値です。