mardi 26 mai 2020

Integration Laravel with database.net - html tags visible in row

I use this component in my project: yajra/laravel-datatables

I have controller:

public function dataTable(Request $request)
    {
        if ($request->ajax()) {
            return Datatables::of($this->model->all())
                ->addIndexColumn()
                ->editColumn('enable', function ($row) {
                    if ($row->enable == 1)
                        return '<span class="label font-weight-bold label-lg  label-light-success label-inline">aktywny</span>';
                    else return '<span class="label font-weight-bold label-lg  label-light-danger label-inline">nieaktywny</span>';

                })
                ->editColumn('name', function ($row) {
                    return Str::limit($row->name, 80, '...');
                })
                ->addColumn('action', function ($row) {
                    $btn = '<a href="' . route('product.edit', ['id' => $row->id]) . '" class="removeItem"><i class="far fa-edit"></i></a> ';
                    $btn .= '<a href="' . route('product.destroy', ['id' => $row->id]) . '" class="removeItem"><i class="removeItem far fa-trash-alt"></i></a> ';

                    return $btn;
                })
                ->rawColumns(['action'])
                ->make(true);
        }
    }

and html:

 <table class="table table-bordered data-table    ">
                        <thead>
                        <tr class="resources">
                            <th>ID</th>
                            <th>Nazwa produktu</th>
                            <th>Status</th>
                            <th width="100px" class="text-center">Akcja</th>
                        </tr>
                        </thead>
                        <tbody class="data-table-center">
                        </tbody>
                    </table>
                </div>
                <div class="datatable datatable-bordered datatable-head-custom" id="kt_datatable"></div>




$(function () {
            var table = $('.data-table').DataTable({
                processing: true,
                serverSide: true,
                ajax: "",
                language: {
                    url: ""
                },
                iDisplayLength: 50,
                render: function (data, type, row) {
                    return data;
                },
                columns: [
                    {data: 'DT_RowIndex', name: 'DT_RowIndex'},
                    // {data: 'id', name: 'id'},
                    {data: 'name', name: 'name'},
                    {data: 'enable', name: 'enable'},
                    {data: 'action', name: 'action', orderable: false, searchable: false},
                ]
            });
        });

In the status (enable) column I see this html instead of the final string. As if a blade would replace such html badly.

My result:

<span class="label font-weight-bold label-lg label-light-success label-inline">aktywny</span>

Prview: https://ibb.co/6tXdH65

How can I fix it?



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire