订单日期查询,语法错误
order date query, syntax error
我想使用以下查询来订购商店下订单的日期。我想按升序执行它们,但是当我尝试测试 运行 时,出现以下错误:
[Syntax Error] line 0, col 7: Error: Expected IdentificationVariable |
ScalarExpression | AggregateExpression | FunctionDeclaration |
PartialObjectExpression | "(" Subselect ")" | CaseExpression, got
'order'
$orderSales = $this->getDoctrine()->getRepository("AppBundle:Order")->createQueryBuilder('order');
$orderSales->orderBy('order.date', 'asc');
$orderSales = $orderSales->getQuery();
$orderResult = $orderSales->getResult();
我在 .twig 模板中渲染 orderResult
return $this->render('admin/store/sales/adminsales.html.twig', array(
'orderResult' =>$orderResult
));
方法 createQueryBuilder
不接受参数,所以将您的别名放在 select
方法中,如下所示:
$orderSales = $this->getDoctrine()->getRepository("AppBundle:Order")->createQueryBuilder();
$orderSales->select('order');
$orderSales->orderBy('order.date', 'asc');
$orderSales = $orderSales->getQuery();
$orderResult = $orderSales->getResult();
希望对您有所帮助
您应该在存储库中声明您的 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 指出的那样:将 "order" 替换为 "o" 以避免 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();
我想使用以下查询来订购商店下订单的日期。我想按升序执行它们,但是当我尝试测试 运行 时,出现以下错误:
[Syntax Error] line 0, col 7: Error: Expected IdentificationVariable | ScalarExpression | AggregateExpression | FunctionDeclaration | PartialObjectExpression | "(" Subselect ")" | CaseExpression, got 'order'
$orderSales = $this->getDoctrine()->getRepository("AppBundle:Order")->createQueryBuilder('order');
$orderSales->orderBy('order.date', 'asc');
$orderSales = $orderSales->getQuery();
$orderResult = $orderSales->getResult();
我在 .twig 模板中渲染 orderResult
return $this->render('admin/store/sales/adminsales.html.twig', array(
'orderResult' =>$orderResult
));
方法 createQueryBuilder
不接受参数,所以将您的别名放在 select
方法中,如下所示:
$orderSales = $this->getDoctrine()->getRepository("AppBundle:Order")->createQueryBuilder();
$orderSales->select('order');
$orderSales->orderBy('order.date', 'asc');
$orderSales = $orderSales->getQuery();
$orderResult = $orderSales->getResult();
希望对您有所帮助
您应该在存储库中声明您的 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 指出的那样:将 "order" 替换为 "o" 以避免 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();