订单日期查询,语法错误


order date query, syntax error

下面的查询我想用来排序商店下订单的日期。我想按升序进行,但当我尝试测试运行时,我会收到以下错误:

[语法错误]第0行,第7列:错误:需要IdentificationVariable|ScalarExpression | AggregateExpression | FunctionDeclaration|PartialObjectExpression |"("Subselect")"|CaseExpression,得到"订单"

$orderSales = $this->getDoctrine()->getRepository("AppBundle:Order")->createQueryBuilder('order');
    $orderSales->orderBy('order.date', 'asc');
    $orderSales = $orderSales->getQuery();
    $orderResult = $orderSales->getResult();

我在.titch模板中呈现orderResult

return $this->render('admin/store/sales/adminsales.html.twig', array(
                            'orderResult' =>$orderResult
    ));

您应该在存储库中声明您的QueryBuilder,例如(createQueryBuilder接受参数)

public function findOrdersByDate()
{
    $qb = $this->createQueryBuilder('o')
        ->orderBy('o.date', 'asc');
    return $qb
        ->getQuery()
        ->getResult();
}

在您的控制器中:

$orderResult = $this->getDoctrine()->getRepository("AppBundle:Order")->findOrdersByDate();

编辑:正如Imanali Mamadiev所指出的:用"o"替换"order"以避免SQL关键字冲突

createQueryBuilder('order') 中使用单词order时出错

更改order

o,例如createQueryBuilder('o')

结果:

$orderSales = $this->getDoctrine()->getRepository("AppBundle:Order")->createQueryBuilder('o');
$orderSales->orderBy('o.date', 'asc');
$orderSales = $orderSales->getQuery();
$orderResult = $orderSales->getResult();

方法createQueryBuilder不接受参数,所以将您的别名放在select方法中,如下所示:

$orderSales = $this->getDoctrine()->getRepository("AppBundle:Order")->createQueryBuilder();
$orderSales->select('order');
$orderSales->orderBy('order.date', 'asc');
$orderSales = $orderSales->getQuery();
$orderResult = $orderSales->getResult();

希望这能帮助