0

环境:Laravel 5.4,Acacha\AdminlteYajra/laravel-datatables

Laravel 5.4 中数据表中的 HTML 代码,不解析网页中的代码,在 Laravel 5.3.* 中工作正常。

问题代码片段

public function data()
{
    DB::statement(DB::raw('set @rownum=0'));
    $result = My_Model::select(array(
        DB::raw('@rownum  := @rownum  + 1 AS rownum'),
        'created_at',
        'name'));

    $datatables = Datatables::of($result)
        ->edit_Column('rownum', '<div style="text-align:center;"><a class="btn btn-primary btn-xs">{{ $rownum }}</a></div>')
        ->edit_Column('created_at','<div style="text-align:center;">{{ App\Functions::setDateTime($created_at) }}')
        ->edit_Column('name', '<div style="text-align:left;"><a class="btn btn-success btn-xs">{{ $name}}</a></div>');

    return $datatables->make(true);
}

结果显示在网页的数据表中,只是这个文本,而不是值为 1 的按钮:

<div style="text-align:center;"><a class="btn btn-primary btn-xs">1</a></div>

系统详情

Operating System: Windows 7 Professional
PHP Version: 7.0.10 (from Laragon 2.2.2)
Laravel Version: 5.4.11
Laravel-Datatables Version: 7.1.4 & 7.2.1
4

1 回答 1

2

解决了。

此处的解决方案:默认情况下转义列

添加 rawColumns:

$datatables = Datatables::of($result)->rawColumns(['rownum','created_at','name']) ...
于 2017-02-17T06:32:01.380 回答