Ошибка типа Uncaught: b.toLowerCase не является функцией

Я получаю некоторые записи:

$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);
});
}
});

Исключение это дает мне:

Uncaught TypeError: b.toLowerCase не является функцией

И выпадающий список результатов тоже не показывает, чего мне здесь не хватает?

1

Решение

Да, вам нужно json_encode вашей компании.

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

Другие решения

Во-первых, код PHP выглядит как код laravel, так что вы можете просто вернуть $companies переменная вот так:

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

Поскольку модели и коллекции преобразуются в JSON при приведении к строке, вы можете возвращать объекты Eloquent непосредственно из маршрутов или контроллеров вашего приложения.
А также, давайте посмотрим на определение process функция, чтобы быть уверенным, что это не то, откуда исходит ошибка.

0

По вопросам рекламы [email protected]