【发布时间】:2015-09-02 20:21:32
【问题描述】:
我有以下查询: (没有 addSelect('CASE ... END AS HIDDEN loquer') 部分它可以正常工作 目标是在我的 cmets 中添加一些订单。但是这部分触发了来自 symfony 的以下消息:Error: Expected Literal, got '"'
public function myfindArticleandCommentsandScores($article,$language){
$qb = $this->createQueryBuilder('a');
$qb->leftjoin('a.comments','c')
->addSelect('c')
->leftJoin('c.scores','s')
->addSelect('s')
->leftJoin('s.user','u')
->addSelect('u')
->addSelect('
CASE
WHEN c.show = "yes" THEN 1 // PROBLEME IS HERE
ELSE 2
END AS HIDDEN show_order
')
->where(
$qb->expr()->eq('a.id', '?1'),
$qb->expr()->orX(
$qb->expr()->eq('c.langue', '?2'),
$qb->expr()->eq('c.langue', '?3')
)
)
->setParameters(array(
'1'=> $article,
'2'=> $language,
'3'=> 'EN',
))
->orderBy('show_order', 'ASC')
->addOrderBy('c.scorenote', 'DESC');
return $qb->getQuery()
->getResult();
}
我尝试将“yes”替换为“yes”,但随后收到以下消息:FatalErrorException: Parse: syntax error, unexpected 'oui' (T_STRING)
【问题讨论】:
-
'Yes' 是正确的,但使用 " 作为字符串分隔符
标签: php symfony query-builder