use*_*576 3 php orm doctrine symfony doctrine-orm
我想知道这在 ORM symfony 学说中是否可行。我有一个产品清单。每个产品都有一个标题。假设他们的头衔是:
1. Great Mango
2. Show Mango
3. King Mango
Run Code Online (Sandbox Code Playgroud)
我用这个学说找标题
$repository->findByTitle("Mango");
Run Code Online (Sandbox Code Playgroud)
但我什么也没显示。如果我完成标题搜索它像“芒果王”。它显示但不显示带有 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();
}
Run Code Online (Sandbox Code Playgroud)
小智 5
要like在 where 子句中使用 a ,您必须将where条件与 一起使用setParameter。查询如下:
$title = 'Mango';
$query = $repository->createQueryBuilder('a')
->where('a.title LIKE :title')
->setParameter('title', '%'.$title.'%')
->getQuery();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2973 次 |
| 最近记录: |