有人可以解释为什么我的查询的部分内容不起作用吗?
这是我的功能:
public function searchSpectacle(request $request){
$data = $request->request->all();
$terms = explode(" ", $data["searchterms"]);
$date = str_replace('/', '-', $data['datestring']);
$query = $this->getDoctrine()->getManager()->createQueryBuilder();
$query->select('S')
->from('AppBundle:Spectacle','S');
$i = 0;
$parameters = array();
foreach ($terms as $key => $term){
$query->orWhere('LOWER(S.nom) LIKE ?' . $i++);
$parameters[] = '%' . $term . '%';
}
foreach ($terms as $key => $term){
$query->orWhere('LOWER(S.artiste) LIKE ?' . $i++);
$parameters[] = '%' . $term . '%';
}
if(!empty($date)){
$query->andWhere('S.date = ?');
$parameters[] = $date;
}
$query->setParameters($parameters);
$spectacles = $query->getQuery()->getResult();
return $this->render('liste_complete.html.twig', array('spectacles' => $spectacles));
}
一切都很完美但是当我添加
时 if(!empty($date)){
$query->andWhere('S.date = ?');
$parameters[] = $date;
}
部分它告诉我:参数格式无效,?给,但是:或?预期
有什么想法吗?
谢谢!
纪尧姆
答案 0 :(得分:0)
可能你会错过将param id连接到其他参数中。试试这个:
if(!empty($date)){
$query->andWhere('S.date = ?' . $i++);
$parameters[] = $date;
}
希望这个帮助