Mario Ene
Mario Ene

Reputation: 853

Displaying only HTML text code in DataTables (Laravel 5.4)

Environment: Laravel 5.4, Acacha\Adminlte, Yajra/laravel-datatables

HTML Code in Datatable in Laravel 5.4, not parsing code in webpage, in Laravel 5.3.* is working ok.

Code snippet of problem

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);
}

Result displayed in datatable in webpage, just this text, not a button with value 1:

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

System details

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

Upvotes: 0

Views: 943

Answers (1)

Mario Ene
Mario Ene

Reputation: 853

Solved.

Solution here: Escape columns by default

Adding rawColumns:

$datatables = Datatables::of($result)->rawColumns(['rownum','created_at','name']) ...

Upvotes: 2

Related Questions