反向使用 like withquery builder

inversed use of like withquery builder

一切都在标题中。

    $qb->expr()->like('a.lieu', ':advertLieu');
->setParameter('advertLieu', $postedAdvert->getVille()->getName()."%")

这将检查 a.lieu 条目中是否有以 [ 开头的子字符串=29=]advertLieu 参数.

我想要反转,像这样:

$qb->expr()->like(':advertLieu', '%a.lieu%',);
    ->setParameter('advertLieu', $postedAdvert->getVille()->getName())

所以,检查ma数据库条目a.lieu是否包含在参数[=29中=]advertLieu

我发现了这个:MySQL: What is a reverse version of LIKE? 但是我如何在我的查询构建器中实现它?

Update

我有一个类似的问题: 如果我的数据库中有 collection 个实体,并且想检查我的参数是否存在于此数组中,例如:$qb->expr()->in('u.ids', $id)

我的意思是检查 u.ids 是否包含 $id。是否可以 ? 谢谢

试试这个:

$qb->expr()
    ->like(
        ':advertLieu', 
        $qb->expr()
            ->concat(
                $qb->expr()->literal('%'), 
                $qb->expr()->concat('a.lieu', $qb->expr()->literal('%'))
            )
     );
->setParameter('advertLieu', $postedAdvert->getVille()->getName())

对于您的更新,我建议您这样做:

$qb->expr()->in('u.id', ':ids');
->setParameter('ids', $id)