Return html content via Ajax Laravel DataTable (using yajrabox package) Return html content via Ajax Laravel DataTable (using yajrabox package) ajax ajax

Return html content via Ajax Laravel DataTable (using yajrabox package)


Okay, the issue appears to be a undocumented breaking change in the new 7.x version of the library: https://github.com/yajra/laravel-datatables/issues/949

In my case, I've fixed it like this:

function ajaxList(){    // Load users with users    $users = User::with('group', 'organisation');    // Finished    return Datatables::eloquent($users)        ->editColumn('is_admin', function(User $user) {            return '<i class="fa fa-'. ($user->is_admin ? 'check' : 'times') .'" aria-hidden="true"></i>';        })        ->rawColumns(['is_admin'])        ->make(true);}


Just put your column in blow metho

escapeColumns()

Example

return $dataTable->addIndexColumn()            ->editColumn('active', function(SettingDropdownValue $model) {                if($model->active === true){                return '<span class="text-center"><img src="'.\URL::asset('/images/active.png').'" border="0" width="15" /></span>';                } else {                return '<img src="'.\URL::asset('/images/inactive.png').'" border="0" width="15" />';                }            })            ->escapeColumns('active')            ->addColumn('action', 'setting_dropdown_values.datatables_actions');


I'm working on a project right now and face the same problem and fix it using ->escapeColumns([])

$users = DB::table('users')->select('*');    return datatables()->of($users)        ->removeColumn('password')        ->editColumn('created_at', function ($user) {            return date('d-m-Y', strtotime($user->created_at));        })        ->editColumn('role_id', function ($user) {            return Role::findOrFail( $user->role_id)->name;        })        ->editColumn('is_active', function ($user) {            return ($user->is_active == 1) ? 'active' : 'suspended';        })        ->addColumn('actions', function ($user) {            return '<a href="#edit-'.$user->id.'" class="btn btn-xs btn-primary"><i class="glyphicon glyphicon-edit"></i> Edit</a>';        })        ->escapeColumns([])        ->make(true);

Source: yajra/laravel-datatables