我尝试根据用户输入的字词搜索对象,但搜索结果总是空白。我知道查询是正确的,因为如果我对$ botanicalname的值进行硬编码,它就可以了。此外,我知道网址正在获取数据,因为当我搜索" Abies concolor"时,这里是网址:
我也尝试过post方法(" $ botanicalname = $ request-> request-> get(' botanicalname')")。
这是我的控制人员:
/**
* Lists all search results.
*
* @Route("/searchresults", name="shrubs_search_results")
* @Method({"GET", "POST"})
*/
public function SearchResultsAction(Request $request)
{
$botanicalname = $request->query->get('botanicalname');
$repository = $this->getDoctrine()->getRepository('AppBundle:Shrubs');
$query = $repository->createQueryBuilder('p')
->where('p.botanicalname = :botanicalname')
->setParameter('botanicalname', '%'.$botanicalname.'%')
->orderBy('p.commonname', 'ASC')
->getQuery();
$shrubs = $query->getResult();
return $this->render('shrubs/searchresults.html.twig', array(
'shrubs' => $shrubs,
));
}
答案 0 :(得分:0)
可能需要转换您的查询,如下所示:
$query = $repository->createQueryBuilder('p');
$shrubs = $query->where($query->expr()->like('p.botanicalname',':botanicalname'))
->setParameter('botanicalname', '%'.$botanicalname.'%')
->orderBy('p.commonname', 'ASC')
->getQuery()
->getResult();
答案 1 :(得分:0)
问题在于我的html.twig页面。它不适用于twig语法{{form_widget(form.botanicalname)}}
它仅适用于标准HTML <input type="text" name="botanicalname">