【发布时间】:2017-03-22 04:09:13
【问题描述】:
我会尝试解释我的问题。我有一个实体,它与其他两个具有多对多关系的实体相连。我想要实现的是使用ajax post方法进行搜索,并接收连接表中连接的所有可能组合。
我真正的问题是,只有在第一个实体中搜索时,我才会收到有效的回调数据。
控制器:
if ($request->isXmlHttpRequest()) {
$name = $request->request->get('person_name');
/** @var EntityRepository $repository */
$repository = $this->getDoctrine()->getManager()->getRepository('AppBundle:Connectors');
$qb = $repository->createQueryBuilder('connectors')
->leftJoin('connectors.contacts', 'contacts')
->leftJoin('contacts.cables', 'cables');
$qb->where('connectors.description LIKE :param');
$qb->setParameter('param','%'.$name.'%');
$connectors = [];
$contacts = [];
$cables = [];
foreach ($qb->getQuery()->getResult() as $connector) {
$connectors[] = $connector;
foreach ($connector->getContacts() as $contact) {
$contacts[] = $contact;
foreach ($contact->getCable() as $cable) {
$cables[] = $cable;
}
}
}
// $Data = $qb->getQuery()->getArrayResult();
return new JsonResponse(json_encode($contacts));
}
此时我想发送我收到的 $contacts 数组是空的( NULL ),但更有趣的是 [{}, {}, {}, {}, {}] 大括号的数量是相同的数量我想收到的联系方式!!
如果注释行未注释并且 $Data 作为响应发送,则没有问题。
JS
$('#call_back_btn' ).click(function() {
$.post("/app_dev.php/AjaxSearch" ,
{
person_name:$('#input_text').val()
} ,
function (data)
{
console.log(data);
var obj = JSON.parse(data);
console.log(obj);
// for (var key in data)
// {
// if(data.hasOwnProperty(key)){
// console.log(data);
// }
// }
$('#resposeText').val(obj[1].description);
}
);
})
}
);
感谢您的帮助
这是我的控制台输出:
【问题讨论】:
-
你必须回显你想要返回的数据。@Metio_1993
-
即使我回显数据,也没有任何反应
-
你看过浏览器开发者工具中的AJAX请求/响应吗?您是否在项目中包含了 jQuery 库?是否报告了任何错误?你是在网络服务器上运行它吗?
-
是的,我已经包含了 jQuery 库,不,没有错误,是的,我在浏览器上查看了所有响应,我可以看到我有一个发布请求和响应,但正如我提到的我一无所有!
-
没人能回答吗?