从你的代码片段我可以看出,你正在寻找这样的东西:
$entityManager->getRepository('PfBlogBundle:Article')
->findBy(
array(
'key' => 'value'
)
);
其中 key 是属性/字段,而 value 是要查找的值。检查 Symfony 手册页。您所追求的是Fetching Objects from the Database。
要like
在 where 子句中使用 a,请参阅这个 SO question,关于如何使用setParameter
。你会得到你的查询:
$repo = $entityManager->getRepository('PfBlogBundle:Article');
$query = $repo->createQueryBuilder('a')
->where('a.title LIKE :title')
->setParameter('title', '%'.$data['search'].'%')
->getQuery();
当然,添加通配符以满足您的需求。我已经将$data['search']
值括在两个%
通配符中,这很慢,但话又说回来:我不知道你实际上在做什么。可能您所追求的只是 不区分大小写的性质LIKE
,在这种情况下,%
可以一起省略...
根据您之前的问题(顺便说一句:考虑偶尔接受一个答案):
public function searchAction(Request $request)
{
$data = $request->get->all();
$repo = $this->getDoctrine()
->getRepository('PfBlogBundle:Article');
$query = $repo->createQueryBuilder('a')
->where('a.title LIKE :title')
->setParameter('title', '%'.$data['search'].'%')
->getQuery();
$paginator = $this->get('knp_paginator');
$pagination = $paginator->paginate(
$query->getResults(),//get the results here
$this->requrest->get('page',1),
4
);
return $this->render('PfBlogBundle:Default:blog.html.twig', array('pagination'=>$pagination));
}
但这只是一个粗略的修复,谷歌学说-symfony 分页,有很多关于此事的详细博客文章