您好我正在尝试使用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上下文添加到此?
答案 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