Saya menggunakan Laravel Datatables 7, tetapi tabel saya tidak merender kode HTML. Itu merender HTML sebelumnya, tetapi ketika saya memperbarui ke Laravel DataTables baru ke 7 dari 6, itu berhenti merender HTML di kolom. http://prntscr.com/e11n84
Ini dengan Laravel DataTables 6 - http://prntscr.com/e11ph0
Hasil diloloskan secara default pada v7. Belum mendokumentasikan semua perubahan yang melanggar tetapi log perubahan harus memberikan beberapa petunjuk. Terima kasih!
Bagaimana saya bisa memperbaiki masalah yang sama tetapi dalam Layanan?
@brian2694 gunakan metode baru ->rawColumns(['column_with_html'])
.
Saya memiliki masalah yang sama, adakah contoh untuk menggunakan rawColumns ?
return Datatables::of($this->users->getForDataTable($request->get('status'), $request->get('trashed')))
->editColumn('confirmed', function ($user) {
return $user->confirmed_label;
})
->addColumn('roles', function ($user) {
return $user->roles->count() ?
implode('<br/>', $user->roles->pluck('name')->toArray()) :
trans('labels.general.none');
})
->addColumn('actions', function ($user) {
return $user->action_buttons;
})
->rawColumns(['actions', 'confirmed'])
->withTrashed()
->make(true);
Bagus!
Mungkin izinkan
->rawColumns(['*'])
?
@divdax mungkin mencoba menggunakan ->escapeColumns([])
untuk mencapai hasil yang sama.
terima kasih banyak ini sangat membantu
->escapeColumns([]) bekerja untuk saya. rawColumns('column_with_html') tidak.
Menggunakan laravel 5.5 dengan "yajra/laravel-datatables-Oracle": "~8.0"
Nara, rawColumns mengambil argumen array, jadi seharusnya rawColumns(['column_with_html'])
Jika ingin membuat tampilan di kolom, Anda bisa melakukan ini:
->editColumn('action', function(User $u){
return view('users.action-btns', ['id'=>$u->id])->render();
})
Jika saya mengedit kolom untuk merendernya dengan tampilan, apakah tidak dapat diasumsikan secara default bahwa tampilan akan sepenuhnya diloloskan oleh blade, sehingga tidak perlu meloloskan diri lagi? Kolom yang diedit dengan tampilan dapat diatur secara otomatis (secara default) menjadi mentah, sama seperti kolom action
sudah (meskipun dokumen tidak menyebutkannya).
saya memiliki masalah yang sama, dan teman saya memberi tahu saya untuk menambahkan ->escapeColumns([]), dan berfungsi.
`jika ($permintaan->ajax()) {
$ajax = Tabel Data::of(Admin::query())->escapeColumns([])->make(true);
kembali $ajax;
}
$dataTable = $htmlBuilder
->addColumn(['data' => 'admin_id', 'name' => 'admin_id', 'class' => 'id-column', 'title' => 'Id', 'searchable' => false, 'render' => function () {
$editUrl = route('backend.staff.edit', '');
return "function(data,type,full,meta){ return '<a href=" . $editUrl . "/'+data+'>'+data+'</a>'; }";
}])
->addColumn(['data' => 'username', 'name' => 'username', 'title' => trans('default.name'), 'class' => 'name-column', 'render' => function () {
$editUrl = route('backend.staff.edit', '');
return "function(data,type,full,meta){ return '<a href=" . $editUrl . "/'+full.admin_id+'>'+data+'</a>'; }";
}])
->addColumn(['data' => 'ip_address', 'name' => 'ip_address', 'title' => trans('default.ip_address')])
->addColumn(['data' => 'last_login', 'name' => 'last_login', 'title' => trans('default.last_login'), 'class' => 'date-column', 'searchable' => false])
->addColumn(['data' => 'html_status', 'name' => 'html_status', 'title' => trans('default.status'), 'class' => 'status-column', 'searchable' => false])
->addAction(['data' => 'action_button', 'name' => 'action', 'title' => trans('default.action'), 'class' => 'actions-column'])`
@tonihidayt Apakah Anda mengerti apa yang dilakukan escapeColumns([])
? Bagi saya sepertinya itu menonaktifkan SEMUA HTML yang lolos dengan menyetel TIDAK ADA kolom untuk menerapkan pelolosan HTML. Ini mungkin cara mudah untuk memperbaiki satu masalah, yang kemudian membawa Anda ke situasi berbahaya dalam keadaan lain.
Ini bekerja dengan benar untuk saya.
Saya setuju dengan @judgej . Saya tidak ingin mengambil risiko keluar dari SEMUA kolom, tetapi yang ingin saya buat mentah adalah pengakses dan tidak menghasilkan hasil mentah dengan $datatables->rawColumns(['full_link']);
@yajra Harap perbarui dokumentasi ini
https://datatables.yajrabox.com/eloquent/add-edit-remove-column
Komentar yang paling membantu