我正在开发一个 symfony 项目(也使用 Doctrine),我想在其中一个页面上实现交错搜索,例如:
用户在第一个 select2 框中搜索作者(通过 Ajax 从 DB 中提取数据),一旦选择了一个项目,就会出现第二个 select2 框,称为 title,我想只显示属于所选作者的标题.
这是初始框的控制器端代码(Ajax 和控制器)。有什么想法可以为第二个 select2 构造查询吗?
与查询数据库以获取结果和自动建议项的初始 select2 相关的部分:
public function searchAjaxAuthorAction()
{
$em = $this->getDoctrine()->getManager();
$term = $this->get('request')->query->get('term');
$limit = $this->get('request')->query->get('page_limit', 1);
$rep = $em->getRepository('StephenPersianArtBundle:Main');
if($term){
$entities = $rep->createQueryBuilder('m')
->where('m.orig_author LIKE ?1')
->orderBy('m.orig_author', 'ASC')
->setParameter('1','%'.$term.'%')
->getQuery();
}else{
$entities = $rep->createQueryBuilder('m')
->groupBy('m.orig_author')
->getQuery();
}
$entities = $entities->execute();
$resultset = array();
foreach($entities as $entity){
if($entity->getOrigAuthor()){
$resultset[] = array(
//'id' => $entity->getId(),
'id' => $entity->getOrigAuthor(),
'text' => $entity->getOrigAuthor()
);
}
}
$return = json_encode($resultset);//jscon encode the array
return new Response($return,200,array('Content-Type'=>'application/json'));
}
还有与此相关的另一部分基本上根据 select2 中选择的项目将数据加载到表中,但我认为这与我遇到的问题无关,因为所有这些都发生在最终查询完成之前。
任何帮助都感激不尽!