Laravel-数据表内联编辑和使用多重自动完成功能

时间:2017-12-29 12:40:51

标签: php laravel datatable autocomplete

我有一个复杂的问题,我有一个包含数据的表,因为我使用数据表,表检查与其他表有关系供应商 单击单元格 vendor_id 时我想要的是使其可编辑并使用自动完成功能来填充或编辑当前数据。 我希望表格可以像这个例子一样编辑 https://editor.datatables.net/examples/inline-editing/simple

my table screenshot

检查表:

细节 描述

VENDOR_ID

供应商表

VENDOR_ID

VENDOR_NAME

现在供应商的名称出现在数据表中,但不知道为什么它的内括号和“” [{“vendor_name”:“Raul”}] 所以我只想显示vendor_name并使用自动完成功能对其进行编辑,并通过存储vendor_id而不是供应商名称将其存储在Check Table中

的Ajax

          var oTable = $('#users-table').DataTable({
            dom: 'flBrtip',   
            stateSave: true,
            paging:     true,
            pagingType: 'simple_numbers',
            processing: true,
            serverSide: true,
            ajax: {
                 url: 'custom-filter-data',
                    data: function(d) {
                          d.start_date = $('input[name=start_date]').val();
                           d.end_date = $('input[name=end_date]').val();
                         }
                         },
         columns : [
       {data: 'details', name: 'details'},
          {data: 'description', name: 'description'},
           {data: 'vendor_id',name:'vendor_id'},
          {data: 'category_id',name: 'category_id'},
        ],
         pageLength: 10,

        });
    oTable.draw();

控制器

   public function getCustomFilterData()
   {
  $arrStart = explode("/", Input::get('start_date'));
      $arrEnd = explode("/", Input::get('end_date'));
      $start = Carbon::create($arrStart[2], $arrStart[0], $arrStart[1], 0, 0, 0);
      $end = Carbon::create($arrEnd[2], $arrEnd[0], $arrEnd[1], 23, 59, 59);

    $orders = Checks::between($start, $end);
  return Datatables::of($orders)->editColumn('vendor_id', function ($user) 
    {
       $vendor =Vendors::select('vendor_name')->where('vendor_id',$user->vendor_id)->get();
     return ( $vendor);
   }) ->make( TRUE );
  }

1 个答案:

答案 0 :(得分:0)

你正在使用->get();返回和数组,因此[] 如果您只想要一个列(vendor_name),请将其写为。

$vendor =Vendors::where('vendor_id',$user->vendor_id)->first();
return $vendor ? $vendor->vendor_name : '';

get和first差异的解释:https://laravel.com/docs/5.5/queries#retrieving-results