将Checkbox添加到数据表 - Jquery& Laravel

时间:2017-12-15 10:41:41

标签: jquery laravel datatables

我正在尝试向我的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}        
        ],

    });

2 个答案:

答案 0 :(得分:1)

您的代码中有错误:

return '<input type="checkbox" id="'.item->id.'" // should be $item

Laravel Datatables包默认情况下会转义所有列的内容 - action列除外。要排除checkbox列的转义,您有两种选择:

  1. config/datatables.php中搜索action并将checkbox添加到该数组中。注意:这将从转义

  2. 全局排除此列
  3. ->rawColumns(['action', 'checkbox'])添加到您的定义

答案 1 :(得分:1)

->editColumn('select_orders', static function ($row) {
            return '<input type="checkbox" name="registrations[]" value="'.$row->id.'"/>';
        })->rawColumns(['select_orders'])

Laravel Datatables包默认情况下会转义所有列的内容,除了action列。要避免复选框列转义,您有两个选择:

config/datatables.php中搜索action并向该数组添加复选框。注意:这将从全局范围排除此列

'raw' => ['action', 'checkbox'],

在您的datatable.js文件中

{data: 'select_orders', name: 'select_orders', searchable: false, orderable: false},