用于简单搜索的“Doctrine Query”构建器

时间:2014-08-12 09:11:52

标签: doctrine-orm

您好我正在尝试使用QueryBuilder编写一个简单的搜索查询。我有一个包含字段的表:名称,描述,代码。

基本上我想检查输入的关键字是否在任何字段中。

public function searchProducts( $keyword )
{
    $qb = $this->productRepository->createQueryBuilder('u');
    $qb->add('where' , 'u.name LIKE :search');
    $qb->add('where' , 'u.description LIKE :search');
    $qb->add('where' , 'u.code LIKE :search');
    $qb->setParameter('search', '%'.$keyword.'%');
}

如何将orX上下文添加到此?

1 个答案:

答案 0 :(得分:1)

public function searchProducts( $keyword )
{
    $qb = $this->productRepository->createQueryBuilder('u');
    $qb->add('where', $qb->expr()->orX(
       $qb->expr()->like('u.name', ':search'),
       $qb->expr()->like('u.description', ':search'),
       $qb->expr()->like('u.code', ':search')
    ))
    $qb->setParameter('search', '%'.$keyword.'%');
}

我认为这对你有用。 另外我不确定,但是不存在这样的选择/缺失:

$qb->add('select', 'u')
   ->add('from', 'User u')

我是从doctrine2 ORM Doc获取的: Docu