Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 动态更新存储库查询_Php_Doctrine Orm - Fatal编程技术网

Php 动态更新存储库查询

Php 动态更新存储库查询,php,doctrine-orm,Php,Doctrine Orm,我在存储库中创建了一个查询。 由于通过函数发送的参数,我想更改此查询中的一些元素(如where条件、排序等) 此函数工作并返回数据: public function dashboardIndex($offset, $limit, $order) { $query = $this->createQueryBuilder('v') ->setFirstResult($offset) ->setMaxResults($limit) -

我在存储库中创建了一个查询。 由于通过函数发送的参数,我想更改此查询中的一些元素(如where条件、排序等)

此函数工作并返回数据:

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) 一开始你也错过了“不工作”听起来很奇怪。你试过调试这个问题吗?