Sonata-project 列表页自定义sql语句

首先创建public function createQuery($content='list')函数,将以下代码放入函数中。

(1)完全自定义sql

$query=$this->getModelManager()->createQuery($this->getClass(),'entity');
$query->from($this->getClass(),'o');
$query->from('JyPcStoreBundle:User','u');
//$query->where('o.user_id = u.id');
$query->andWhere(
    $query->expr()->eq($query->getRootAlias().'.origin', ':origin')
);
$query->setParameter('origin', '1');
//$query->select('o,u.username');
return $query;

(2)在原有基础上增加where条件

$query = parent::createQuery($context);
$query->addSelect('u');
$query->leftJoin('JyPcStoreBundle:User','u','WITH',$query->getRootAlias().'.user_id = u.id');
$query->andWhere(
    $query->expr()->eq($query->getRootAlias().'.origin', ':origin')
);
$query->setParameter('origin', '1');
$query->select('o,u.username');

注:增加leftJoin但这个Entity中如果未写相应关联关系的话会报错。


by 雪洁 2014-11-25 04:59:09 1565 views
我来说几句

相关文章