我将问题添加到jquery.datatables中。
我的数据表功能如下所示
public function getSliderImages()
{
$query = Slider::with('User')->select('sliders.*');
return Datatables::of($query)
->addColumn('fullName',function ($data){
return $data->user->firstName .' '. $data->user->lastName;
})
->addColumn('types',function ($data){
return '<ul class="list-condensed list-unstyled no-margin">' .
'<li><span class="text-semibold">Boyut:</span> '.$data->size.'</li>' .
'<li><span class="text-semibold">Format:</span> ' .$data->ext.'</li></ul>';
})
->make(true);
}
返回的json文件非常好,但问题就在这里 我的数据表看起来像
最后一件事是我的javascript
columns: [
{data: 'slider_slug', name: 'slider_slug',"render": function(data, type, row) {
return '<a href="'+loc+'/'+data+'" data-popup="lightbox"> <img src="'+loc+'/'+data+'" class="img-rounded img-preview" </a>';
},
orderable: false,
searchable: false
},
{data: 'slider_slug', name: 'slider_slug'},
{data: 'fullName', name: 'fullName'},
{data: 'created_at', name: 'created_at'},
{data: 'action',name:'action'},
{data: 'types',name:'types'},
返回值的作用类似于纯文本,但是它的html。
在javascript中,我无法从服务器获取2个数据。我的意思是我不能在1行中获得2个变量。
我该如何解决这个问题
答案 0 :(得分:1)
我认为我有解决问题的方法,试试这个
columns: [
{data: 'slider_slug', name: 'slider_slug',
render:function (data, type, full, meta) {
console.log(full);
return '<a href="'+loc+'/'+data+'" data-popup="lightbox"> <img src="'+loc+'/'+data+'" class="img-rounded img-preview" </a>';
}
}
答案 1 :(得分:1)
简单...
只需添加->rawColumns(['fullName', 'types'])
所以...您的代码将是:
public function getSliderImages()
{
$query = Slider::with('User')->select('sliders.*');
return Datatables::of($query)
->addColumn('fullName',function ($data){
return $data->user->firstName .' '. $data->user->lastName;
})
->addColumn('types',function ($data){
return '<ul class="list-condensed list-unstyled no-margin">' .
'<li><span class="text-semibold">Boyut:</span> '.$data->size.'</li>' .
'<li><span class="text-semibold">Format:</span> ' .$data->ext.'</li></ul>';
})
->rawColumns(['fullName', 'types'])
->make(true);
}
请参见https://yajrabox.com/docs/laravel-datatables/master/raw-columns
答案 2 :(得分:0)
请使用新的rawColumns()方法。您必须传递一个或多个需要显示为原始列(呈现HTML)的数组或列
示例: (驱动程序和操作列将呈现为原始格式-使用HTML)
rawColumns(['driver','action'])