繁体   English   中英

如何在学说ORM中搜索一个单词?

[英]How to search a word in doctrine ORM?

我想知道这是否可能在学说ORM symfony。 我有一个产品清单。 每个产品都有一个标题。 让他们的头衔是:

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

我用这个学说来找到标题

$repository->findByTitle("Mango");

但我什么都没显示 如果我完成标题搜索它像“国王芒果”。 它显示但不是带有MANGO字的列表。

我用这个链接作为参考。 但如果您有更多关于此的文档。 我很高兴从中吸取教训。

魔术方法仅适用于精确搜索。 要使用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();
}

要在where子句中使用like ,必须使用带有setParameter where条件。 查询如下:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM