Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel 4 Typeahead.JSON响应未呈现_Laravel 4_Twitter Typeahead - Fatal编程技术网

Laravel 4 Typeahead.JSON响应未呈现

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

我正试图用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, 模板:{ 空的:[ , “没有结果”, ], 标题:“匹配的公司” } }; 我的控制台日志使用上述代码:


您正在记录的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个条目的查询,我没有得到任何结果。我正在为我的原始代码添加控制台日志。