Laravel 4 Typeahead.JSON响应未呈现
我正试图用Bootstrap 2.3.2集成到我的Laravel 4.2.11项目中。 我使用Fiddler将结果作为JSON检查返回,但始终显示一个未定义的结果。 如果输入的搜索查询不返回任何结果,则“无结果”将正确显示 //Laravel中的简单查询 路由::获取“/sidebar/clients/{q}”,函数$q { $companys=DB::table'ViewCompanies'->选择数组'CompanyID','FullCompanyName' ->其中'FullCompanyName'、'like'、'%'.$q.'%'->get; 返回响应::jsonarray'companys'=>$companys; }; //页面中的Javascript var客户=新的猎犬{ datumTokenizer:Bloodhound.tokenizers.obj.whitespace'FullCompayName', queryTokenizer:猎犬,标记,空白, 远程:{ url:“/sidebar/clients/%QUERY”, 过滤器:函数parsedResponse{ //parsedResponse是从后端返回的数组 console.logparsedResponse; 返回解析响应; } } }; 客户端初始化; $'clients.typeahead'。typeahead{ 提示:没错, 推荐理由:没错, 最小长度:3, }, { 名称:'客户', valueKey:'公司ID', displayKey:“FullCompanyName”, 来源:clients.ttAdapter, 模板:{ 空的:[ , “没有结果”, ], 标题:“匹配的公司” } }; 我的控制台日志使用上述代码:Laravel 4 Typeahead.JSON响应未呈现,laravel-4,twitter-typeahead,Laravel 4,Twitter Typeahead,我正试图用Bootstrap 2.3.2集成到我的Laravel 4.2.11项目中。 我使用Fiddler将结果作为JSON检查返回,但始终显示一个未定义的结果。 如果输入的搜索查询不返回任何结果,则“无结果”将正确显示 //Laravel中的简单查询 路由::获取“/sidebar/clients/{q}”,函数$q { $companys=DB::table'ViewCompanies'->选择数组'CompanyID','FullCompanyName' ->其中'FullCompany
您正在记录的parsedResponse的输出是什么?我认为DB::table返回的是一个对象,而不是数组。尝试按如下方式替换响应:
return Response::json(array('companies' => $companies->toArray()));
然后将结果记录下来,并将其格式化到侦探犬对象的过滤器函数中。
希望有帮助 感谢Eduardo让我想到需要将JSON解析为JS数组 通过搜索发现了以下两个问题: 从中我能够设计出我的单线解决方案完全移除过滤器显示:
filter: function (parsedResponse) {
console.log(parsedResponse);
var parsedResponse = $.map(parsedResponse, function(el) { return el; });
return parsedResponse;
}
尝试过之后,对于以前返回4个条目的查询,我没有得到任何结果。我正在为我的原始代码添加控制台日志。