Laravel 如果 table 列名称不是 'name',则使用 Jquery 的自动完成不会获取数据

Laravel Autocomplete using Jquery is not fetching data if the table column name isn't 'name'

我正在使用 Jquery 和 Laravel 5.7 来制作自动完成功能。

我有一个名为 'pricings' 的 table,但 table 中没有名为 'name' 的列。当我搜索关键字时 returns 什么都没有。

<script>
   $(document).ready(function() {
   $( "#search" ).autocomplete({

    source: function(request, response) {
        $.ajax({
        url: "{{url('autocomplete')}}",
        data: {
                term : request.term
         },
        dataType: "json",
        success: function(data){
           var resp = $.map(data,function(obj){
                //console.log(obj.city_name);
                return obj.name;
           }); 

           response(resp);
        }
    });
},
minLength: 1
 });
});
 </script>

这是我的控制器:

public function search(Request $request)
    {
        $search = $request->get('term');

        $result = DB::table('pricings')->where('title', 'LIKE', '%'.$search.'%')->get();

        return response()->json($result); 
    }

Table数据

Data in my table

输出 output

但是如果我将 table 列名称从 TITLE 更改为 NAME 它returns数据

如果没有名为 'name' 的列,我如何从任何列中获取数据?

在您的 ajaxsuccess 回调中,您正在检查 name,您应该寻找 title,它是数据库 Table。

        success: function(data){
           var resp = $.map(data,function(obj){
                //console.log(obj.city_name);
                return obj.title;  //This should be title instead of name.
            });