doufang2228 2015-10-14 06:47
浏览 42

在Sonata Admin QueryBuilder中加入别名

I'm trying to "translate" query from this thread to query builder in Sonata Admin.

I figured something like this:

$e = $qb->expr();
$a = $qb->getRootAlias();

$qb->select("{$a}.id");
$qb->addSelect("COUNT(t2.id) as countKorekty");
$qb->addSelect("{$a}.created");      
$qb->leftJoin("EsurfSedinMainBundle:Deklaracja", 't2', "t2.deklaracja = {$a}.id");
$qb->groupBy("{$a}.id");

But when check profiler, it returns:

SELECT 
d0_.id AS id0, 
COUNT(d1_.id) AS sclr1, 
d0_.created AS created2 
FROM 
Deklaracja d0_ 
LEFT JOIN Deklaracja d1_ ON (d0_.created >= ? AND d0_.id = d0_.deklaracja_id) 
AND d1_.discr IN ('deklaracja', 'korekta') 
WHERE d0_.discr IN ('deklaracja', 'korekta') 
GROUP BY d0_.id 

It's like a query builder changed my second alias "t2" in inner join to root alias {$a}. In that case my query is working incorrectly.

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥30 自适应 LMS 算法实现 FIR 最佳维纳滤波器matlab方案
    • ¥15 lingo18勾选global solver求解使用的算法
    • ¥15 全部备份安卓app数据包括密码,可以复制到另一手机上运行
    • ¥15 Python3.5 相关代码写作
    • ¥20 测距传感器数据手册i2c
    • ¥15 RPA正常跑,cmd输入cookies跑不出来
    • ¥15 求帮我调试一下freefem代码
    • ¥15 matlab代码解决,怎么运行
    • ¥15 R语言Rstudio突然无法启动
    • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像