0

我正在做服务器端处理,并且我正在添加具有一些 css 样式的列,但由于某种原因,它没有在 html 中解释,它仅作为文本获取。

这是我的 php 代码。

    public function getCompras()
{
    $compra = Compra::with('empresas');
    return DataTables::of($compra)
        ->addColumn('empresas', function ($compra) {
            return $compra->empresas->first()->nombre;
        })
        ->addColumn('estado', function ($compra) {
            if ($compra->estado == 0) {
                return '<span class="label label-warning" >Pendiente</span>';
            } else {
                return '<span class="label label-success">Cobrado</span>';
            }
        })
        ->make(true);
}

我的js

$(document).ready(function () {
  $('#tb_por_pagar').DataTable({
    processing: true,
    serverSide: true,
    ajax: '/cuentas/pagar/data',
    columns: [
      {data: 'factura_numero', name: 'factura_numero'},
      {data: 'total_transferencia', name: 'total_transferencia'},
      {data: 'fecha_pago', name: 'fecha_pago'},
      {data: 'empresas', name: 'empresas'},
      {data: 'estado', name: 'estado'},
    ],
    'language': {
      'url': '../plugins/dataTables.spanish.lang'
    }
  })
})

这就是结果

在此处输入图像描述

谢谢你的帮助!

有效的方法 在此处输入图像描述

在此处输入图像描述

4

2 回答 2

0

解决方案添加到$dt->escapeColumns([])->make( true )行尾。这是我的项目代码:

$data = DB::table( 'products' )->get();
$dt   = DataTables::of( $data );
$dt->addColumn( 'action', function ( $data ) {
    $button = '<a class="pointer edit" data-id="' . $data->id . '" title="Edit(' . $data->id . ')"><i class="fa fa-edit"></i></a>';
    $button .= '&nbsp;';
    $button .= '<a class="pointer delete" data-id="' . $data->id . '" title="Delete(' . $data->id . ')"><i class="fa fa-trash"></i></a>';

    return $button;
} );

return $dt->escapeColumns([])->make( true );
于 2020-08-28T13:27:30.843 回答
0

解决方案是将 ->rawColumns() 添加到我们方法的末尾

public function getCompras()
{
    $compra = Compra::with('empresas');
    return DataTables::of($compra)
        ->addColumn('empresas', function ($compra) {
            return $compra->empresas->first()->nombre;
        })
        ->addColumn('estado', function ($compra) {

                return "<span class='label label-warning' >Pendiente</span>";

        })

        ->rawColumns(['estado'])
        ->make(true);
}
于 2018-09-15T04:03:44.467 回答