未捕获的TypeError:b.toLowerCase不是函数

时间:2018-03-21 14:02:30

标签: javascript php jquery laravel typehead

我正在取一些记录:

$companies = \App\User::where('type', 'pet-salon')->orWhere('type', 'veterinarian')->get();
return response()->json($companies);

返回的数据是一个对象数组:

[{
  id: 2, 
  type: "xxx", 
  deactivate: 0, 
  xxx: "Hello", 
  middle_name: "Mid",   
  lastname: "xxx",
  //...
}]

这是jQuery预先输入的代码:

$('#getCompaniesForConnection').typeahead({
  source:  function (query, process) {
    return $.get('/all/companies', { query: query }, function (data) {
      return process(data);
    });
  }
});

它给我的例外:

  

未捕获的TypeError:b.toLowerCase不是函数

结果下拉也没有显示,我在这里缺少什么?

2 个答案:

答案 0 :(得分:0)

是的,您需要对您的公司进行json_encode。

$companies = \App\User::where('type', 'pet-salon')->orWhere('type', 
'veterinarian')->get();
$result = json_encode($companies ); // return this or echo

答案 1 :(得分:0)

首先,PHP代码看起来像是一个laravel代码,所以你可以像这样返回$companies变量:

$companies = \App\User::where('type', 'pet-salon')->orWhere('type', 'veterinarian')->get();
return $companies;

由于模型和集合在转换为字符串时会转换为JSON,因此您可以直接从应用程序的路径或控制器返回Eloquent对象。 而且,让我们看看process函数的定义,以确保不是错误的来源。