【问题标题】:Button in Laravel Datatable not renderingLaravel Datatable 中的按钮未呈现
【发布时间】:2018-01-25 08:18:33
【问题描述】:

我正在使用 Laravel 5.4 和 Yajra 数据表,下面是我的代码正常工作,但在我创建的第二个操作中,按钮没有显示,而是显示文本本身“<a href="/product/'. $row->id .'/create-price" class="btn btn-primary">Add Price</a>”我错过了什么?

public function getProductDatatable()
    {
        $Product = Product::query();
       return Datatables::eloquent($Product)
        ->addColumn('action', function($row) {
            return '<a href="/product/'. $row->id .'/edit" class="btn btn-primary">Edit</a>';
        })

        ->addColumn('add_price', function($row) {
            return '<a href="/product/'. $row->id .'/create-price" class="btn btn-primary">Add Price</a>';
        })

       ->make(true);
    }

前端部分

 <script type="text/javascript">
        $(function() {
            $('#product-table').DataTable({
                processing: true,
                serverSide: true,
                ajax: '{{ url('product/get_product_datatable') }}',
                columns : [
                    {data: 'id', name: 'id'},
                    {data: 'product_code', name: 'product_code'},
                    {data: 'action', searchable: false, orderable: false},
                    {data: 'add_price', searchable: false, orderable: false},
                    {data: 'created_at', name: 'created_at'},
                    {data: 'updated_at', name: 'updated_at'}
                ]
            });
        }); 
        </script>

【问题讨论】:

  • 如何在前端渲染视图
  • @meda 我已经编辑了我的问题并添加了前端js

标签: php laravel datatables laravel-5.4


【解决方案1】:

你需要定义rawColumns

public function getProductDatatable()
    {
        $Product = Product::query();
       return Datatables::eloquent($Product)
        ->addColumn('action', function($row) {
            return '<a href="/product/'. $row->id .'/edit" class="btn btn-primary">Edit</a>';
        })

        ->addColumn('add_price', function($row) {
            return '<a href="/product/'. $row->id .'/create-price" class="btn btn-primary">Add Price</a>';
        })
       ->rawColumns(['add_price', 'action'])
       ->make(true);
    }

【讨论】:

    【解决方案2】:

    我找到了这个issue on github,尝试添加rawColumns

     Datatables::eloquent($Product)
     ->addColumn(..)
     ->rawColumns(['add_price']);
    

    【讨论】:

      猜你喜欢
      • 2021-04-13
      • 2017-02-23
      • 1970-01-01
      • 2010-10-07
      • 2018-01-08
      • 1970-01-01
      • 2018-10-21
      • 1970-01-01
      • 2022-01-18
      相关资源
      最近更新 更多