我正在研究一个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中选择的项目将数据加载到表中,但我不认为这与我遇到的问题相关,因为所有这些都发生在最终查询之前完成了。
非常感谢任何帮助!