子句,其中不处理简单数组类型。条件为cc.isActive = :active
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();
在这里,已提交的定义:
/**
* @ORM\Column(name="is_active", type="simple_array", columnDefinition="TINYINT(1) NULL")
*/
private $isActive;
如果字段is_active的内容为null,则此查询返回记录.为什么?我只问is_active =1
非常感谢
发布于 2014-11-27 06:35:41
可以通过执行$qb->getQuery()->getSQL()
( $qb
是QueryBuilder对象)或查看Symfony工具栏来调试实际的SQL调用。
代码有两个问题。首先,$isActive
字段的定义是错误的,它应该是布尔型的,而不是simple_array:
/**
* @ORM\Column(name="is_active", type="boolean")
*/
private $isActive;
其次,innerJoin应该是指定关系 on Win4uAdminBundle:ColorGammeCor
,所以它应该类似于:
return $qb->select('c')
->from('Win4uAdminBundle:ColorGammeCor', 'c')
->innerJoin('c.color', 'cc')
https://stackoverflow.com/questions/27172127
复制相似问题