Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Symfony +原则:选择不起作用的子句

Symfony +原则:选择不起作用的子句
EN

Stack Overflow用户
提问于 2014-11-27 05:43:48
回答 1查看 360关注 0票数 0

子句,其中不处理简单数组类型。条件为cc.isActive = :active

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
return $qb->select('c')
        ->from('Win4uAdminBundle:ColorGammeCor', 'c')
        ->innerJoin('Win4uAdminBundle:Color', 'cc')
        ->where('c.type = :type')
        ->andWhere('cc.isActive = :active ')
        ->andWhere('c.gamme = :gamme_id')
        ->addGroupBy('c.colorExt')
        ->setParameter('type', $type)
        ->setParameter('active', 1)
        ->setParameter('gamme_id', $gammeId)
        ->getQuery()->getResult();

在这里,已提交的定义:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/**
 * @ORM\Column(name="is_active", type="simple_array", columnDefinition="TINYINT(1) NULL")
 */
private $isActive;

如果字段is_active的内容为null,则此查询返回记录.为什么?我只问is_active =1

非常感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-27 06:35:41

可以通过执行$qb->getQuery()->getSQL() ( $qb是QueryBuilder对象)或查看Symfony工具栏来调试实际的SQL调用。

代码有两个问题。首先,$isActive字段的定义是错误的,它应该是布尔型的,而不是simple_array:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/**
 * @ORM\Column(name="is_active", type="boolean")
 */
private $isActive;

其次,innerJoin应该是指定关系 on Win4uAdminBundle:ColorGammeCor,所以它应该类似于:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
return $qb->select('c')
    ->from('Win4uAdminBundle:ColorGammeCor', 'c')
    ->innerJoin('c.color', 'cc')
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27172127

复制
相关文章

相似问题

添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文