如何在教义ORM中搜索单词



我想知道这在教义ORM symfony中是否可能。我有一个产品清单。每个产品都有一个标题。假设他们的标题是:

1. Great Mango
2. Show Mango
3. King Mango

我用这个学说来找标题

$repository->findByTitle("Mango");

但我什么也没显示。如果我完成标题以像"芒果王"一样搜索它。它显示但不显示带有MANGO单词的列表。

我使用此链接作为参考。 但是,如果您有更多有关此的文档。我很高兴从中学习。

要在 where 子句中使用like,您必须将where条件与 setParameter 一起使用。查询如下:

$title = 'Mango';
$query = $repository->createQueryBuilder('a')
           ->where('a.title LIKE :title')
           ->setParameter('title', '%'.$title.'%')
           ->getQuery();

魔术方法仅适用于精确搜索。要使用 LIKE 语句,您必须创建自己的存储库,如下所述:http://symfony.com/doc/current/doctrine/repository.html

拥有自己的存储库类后,创建一个在查询中使用LIKE的方法:

public function findByTitlePart($title)
{
    return $this->getEntityManager()
        ->createQuery(
            'SELECT p FROM AppBundle:Product p WHERE p.title LIKE :title'
        )
        ->setParameter('title', '%' . $title . '%')
        ->getResult();
}

相关内容

  • 没有找到相关文章

最新更新