![](/img/trans.png)
[英]Doctrine 2 ORM - Search in oneToMany relation (QueryBuilder)
[英]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.