是否可以在configureListFields中的sonataadmin中進行自定義查詢? 。Sonata Admin configureListFields
在這個函數:
protected function configureListFields(ListMapper $listMapper) { $listMapper ->>add(.... ; }
謝謝!
是否可以在configureListFields中的sonataadmin中進行自定義查詢? 。Sonata Admin configureListFields
在這個函數:
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;
}
AFAIK,你不能改變查詢的SELECT
一部分,你不能使用GROUP BY
,因爲內部索納塔運行此查詢至少兩次。首先,它檢查查詢返回的行數。其次,它運行這個查詢分頁。
正如Tautrimas所說,您可以覆蓋管理類中的createQuery($context = 'list')
函數。
您可以嘗試更改查詢的SELECT部分是這樣的:
$query = parent::createQuery($context);
$query->add('select', 'm', false);
$query->add('from', 'Toto\MyBundle\Entity\MyEntity m', false);
在add函數的第三個參數是一個布爾值,要麼選擇追加或替換查詢部分。
種類的相關[問題](http://stackoverflow.com/questions/24450039/how-to-customize-configuredatagridfilters-in-sonata-admin-to-use-non-related-mon)? – abbood