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