小编jjg*_*cía的帖子

Symfony2,创建querybuilder where子句,不为空或不为null

我在Entity中有一个类型数组字段,

MyEntity.php

/**
 * @var string
 *
 * @ORM\Column(name="excepcionMenu", type="array", length=255, nullable=true)
 */
private $excepcion;
Run Code Online (Sandbox Code Playgroud)

我想让一个QueryBuilder$ excepcion字段中选择不为空不为空.

我正在尝试 MyEntityRepository.php

public function findAllExcepcionesByItem($itemId) {

    $query = $this->createQueryBuilder('p')
            ->leftJoin('p.item', 'i')
            ->where('i.id = :actual')->setParameter('actual', $itemId)
            ->andWhere('p.excepcion IS NOT NULL')
            ->getQuery();

    return $query->getResult();
}
Run Code Online (Sandbox Code Playgroud)

但是这会返回所有表记录.

public function findAllExcepcionesByItem($itemId) {

    $query = $this->createQueryBuilder('p')
            ->leftJoin('p.item', 'i')
            ->where('i.id = :actual')->setParameter('actual', $itemId)
            ->andWhere('p.excepcion IS NULL')
            ->getQuery();

    return $query->getResult();
}
Run Code Online (Sandbox Code Playgroud)

但这会返回零记录.

数据库中的此字段以这种方式存储值:

a:0:{} // empty
N; // null
a:2:{i:0;i:2;i:1;i:4;} // not …
Run Code Online (Sandbox Code Playgroud)

php mysql orm symfony doctrine-orm

11
推荐指数
2
解决办法
2万
查看次数

标签 统计

doctrine-orm ×1

mysql ×1

orm ×1

php ×1

symfony ×1