如何通过 Laravel DataTable 显示 HTML?

Posted

技术标签:

【中文标题】如何通过 Laravel DataTable 显示 HTML?【英文标题】:How to display HTML through Laravel DataTable? 【发布时间】:2018-01-03 17:56:53 【问题描述】:

我正在尝试通过我的 dataTable 请求获取一些 html

我使用 Laravel DataTable 库。当我获取数据时,页面将 HTML 显示为列中我不想要的普通文本,我想将其显示为普通 HTML。

public function suppliers()
    $Suppliers = Suppliers::getSuppliersView();

    return Datatables::of($Suppliers)
                ->addColumn('operations', '<button id=" $serial_no " class="btn btn-primary">Edit</button>')
                ->rawColumns(['operations'])
                ->make();

关于这个问题的任何帮助?谢谢。

【问题讨论】:

【参考方案1】:

很久以前就找到了解决办法,

我们可以使用

->escapeColumns(['operations']) 

并设置我们要显示其 HTML 的每一列的名称。

它也可以帮助其他人。谢谢...

【讨论】:

【参考方案2】:
  $users = $user->all();
    return Datatables::of($users)
        ->addColumn('feature', function($row) 
            return  $row->feature ;
        )->escapeColumns([])
        ->make(true);

【讨论】:

【参考方案3】:

显示未转义的数据

默认情况下,Blade 语句会通过 php 的 htmlspecialchars 函数自动发送,以防止 XSS 攻击。如果您不希望您的数据被转义,您可以使用以下语法:

你好,!! $name !!。

尝试将刀片标签更改为

!! $serial_no !!

【讨论】:

我刚刚找到了解决方案,并发布了答案。如果有兴趣,请查看。 这与刀片无关,行将通过 AJAX 请求显示,使用 JQuery DataTables,这在这种情况下无济于事。

以上是关于如何通过 Laravel DataTable 显示 HTML?的主要内容,如果未能解决你的问题,请参考以下文章

Laravel,Yajra Datatable,如果 y 那么如何返回 Yes else No

在Laravel DataTable中显示数据

Datatable中基于ID的信息颜色状态高亮显示(Laravel 8)

编辑列日期格式后不显示过滤日期 - Laravel Yajra Datatable

Laravel Datatable 中的按钮未呈现

通过 Ajax Laravel DataTable 返回 html 内容(使用 yajrabox 包)