在我的第一个Laravel项目中开始使用Typeahead。这是我想做的:
我有一个要使用typeahead.js自动完成的搜索字段。
这是在我的项目中可以正常工作的js,但我需要对其进行自定义:
var path = "{{ route('autocomplete.ajax') }}";
$('#search_school').typeahead({
minLength: 2,
source: function (query, process) {
return $.get(path, { query: query }, function (data) {
return process(data);
});
}
});
这是我的sql查询的样子(它从 name 字段和 postcode 字段搜索表的 Schools 部分):
public function autocomplete(Request $request)
{
$schools = Schools::where('name','like',"%{$request->input('query')}%")
->orWhere('postcode','like',"%{$request->input('query')}%")
->get();
return response()->json($schools);
}
想法很简单-我在搜索字段中输入了学校名称的一部分,并且一切正常-提前输入即可获得带有学校名称的下拉列表。
但是,如果我输入邮政编码,则不会得到任何结果。三个问题:
P.S。名称和邮政编码字段均为varchar。数据库查询很好-如果我直接转到route(autocomplete.ajax)并搜索邮政编码,它将显示正确的结果,因此js一定有问题。
谢谢!