我正在尝试向我的DataTable添加一个复选框,但是当我运行我的项目时,它会返回文本中的复选框,因为它显示在我的控制器中。如何从我的控制器完成此操作?
当我运行项目时,我得到的复选框不会在模板中呈现,而是显示原始文本。发生了什么事?
public function getItem()
{
$items = Item::all();
return Datatables::of($items)->addColumn('checkbox', function ($item) {
return '<input type="checkbox" id="'.item->id.'" name="someCheckbox" />';
})->make(true);
}
查看
oTable = $('#users-table').DataTable({
"processing": true,
"serverSide": true,
"ajax": "{{ route('datatable.getitems') }}",
"columns": [
{data: 'checkbox', name: 'checkbox', orderable: false, searchable: false},
{data: 'name', name: 'name'},
{data: 'action', name: 'action', orderable: false, searchable: false}
],
});
答案 0 :(得分:1)
您的代码中有错误:
return '<input type="checkbox" id="'.item->id.'" // should be $item
Laravel Datatables包默认情况下会转义所有列的内容 - action
列除外。要排除checkbox
列的转义,您有两种选择:
在config/datatables.php
中搜索action
并将checkbox
添加到该数组中。注意:这将从转义
将->rawColumns(['action', 'checkbox'])
添加到您的定义
答案 1 :(得分:1)
->editColumn('select_orders', static function ($row) {
return '<input type="checkbox" name="registrations[]" value="'.$row->id.'"/>';
})->rawColumns(['select_orders'])
在config/datatables.php
中搜索action
并向该数组添加复选框。注意:这将从全局范围排除此列
'raw' => ['action', 'checkbox'],
在您的datatable.js
文件中
{data: 'select_orders', name: 'select_orders', searchable: false, orderable: false},