动态更新存储库查询
Dynamically update repository queries
我在存储库中创建了一个查询。
由于通过函数发送的参数,我想更改此查询中的某些元素(如 where 条件、排序等)。
此功能有效,returns 数据:
public function dashboardIndex($offset, $limit, $order)
{
$query = $this->createQueryBuilder('v')
->setFirstResult($offset)
->setMaxResults($limit)
->getQuery()
->getResult()
;
return $query;
}
添加动态“addOrderBy”不起作用,也没有 return 数据
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”return是一个对象,但不能在整个函数中对其进行修改吗?
明显的说法很明显:
要return查询的结果,就得return查询的结果。
因此 return $query;
不是 return 结果,而是查询。
更好:
return $query->getQuery()->getResult();
我在存储库中创建了一个查询。 由于通过函数发送的参数,我想更改此查询中的某些元素(如 where 条件、排序等)。
此功能有效,returns 数据:
public function dashboardIndex($offset, $limit, $order)
{
$query = $this->createQueryBuilder('v')
->setFirstResult($offset)
->setMaxResults($limit)
->getQuery()
->getResult()
;
return $query;
}
添加动态“addOrderBy”不起作用,也没有 return 数据
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”return是一个对象,但不能在整个函数中对其进行修改吗?
明显的说法很明显:
要return查询的结果,就得return查询的结果。
因此 return $query;
不是 return 结果,而是查询。
更好:
return $query->getQuery()->getResult();