Php 动态更新存储库查询
我在存储库中创建了一个查询。 由于通过函数发送的参数,我想更改此查询中的一些元素(如where条件、排序等) 此函数工作并返回数据:Php 动态更新存储库查询,php,doctrine-orm,Php,Doctrine Orm,我在存储库中创建了一个查询。 由于通过函数发送的参数,我想更改此查询中的一些元素(如where条件、排序等) 此函数工作并返回数据: public function dashboardIndex($offset, $limit, $order) { $query = $this->createQueryBuilder('v') ->setFirstResult($offset) ->setMaxResults($limit) -
public function dashboardIndex($offset, $limit, $order)
{
$query = $this->createQueryBuilder('v')
->setFirstResult($offset)
->setMaxResults($limit)
->getQuery()
->getResult()
;
return $query;
}
添加动态“addOrderBy”不起作用,也不会返回数据
public function dashboardIndex($offset, $limit, $order)
{
$query = $this->createQueryBuilder('v');
/* Sort dynamically $order = ['column1' => 'ASC', 'column2' => DESC, ...] */
foreach($order as $column => $direction){
$query->addOrderBy('v.'.$column , $direction);
}
/* Sort dynamically */
$query->setFirstResult($offset)
->setMaxResults($limit)
->getQuery()
->getResult()
;
return $query;
}
“createQueryBuilder”返回一个对象,但不能在函数中一直修改它吗?显而易见的语句是显而易见的: 要返回查询结果,必须返回查询结果 因此
返回$query代码>不返回结果,但返回查询
更好:
return$query->getQuery()->getResult()代码>在哪里设置查询生成器应从哪个实体获取数据?@MartinM。应该由它所在的存储库决定。当然可以。起初我没有看到任何错误,所以我认为它可能设置不正确。现在我看到返回的是$query
,而不是它的结果。删除返回$query
并在前一行添加一个返回值
。@MartinM。精确地o) 一开始你也错过了“不工作”听起来很奇怪。你试过调试这个问题吗?