Laravel Datatables 7μ μ¬μ©νκ³ μμ§λ§ λ΄ ν μ΄λΈμ΄ HTML μ½λλ₯Ό λ λλ§νμ§ μμ΅λλ€. μ΄μ μλ HTMLμ λ λλ§νμ§λ§ μλ‘μ΄ Laravel DataTablesλ₯Ό 6μμ 7λ‘ μ λ°μ΄νΈνμ λ μ΄μ HTML λ λλ§μ΄ μ€μ§λμμ΅λλ€. http://prntscr.com/e11n84
μ΄κ²μ Laravel DataTables 6 - http://prntscr.com/e11ph0 μ λλ€.
κ²°κ³Όλ κΈ°λ³Έμ μΌλ‘ v7μμ μ΄μ€μΌμ΄νλ©λλ€. μμ§ λͺ¨λ μ£Όμ λ³κ²½ μ¬νμ λ¬Έμννμ§λ μμμ§λ§ λ³κ²½ λ‘κ·Έκ° λͺ κ°μ§ λ¨μλ₯Ό μ 곡ν΄μΌ ν©λλ€. κ°μ¬ ν΄μ!
μλΉμ€ μ€μ΄μ§λ§ λμΌν λ¬Έμ λ₯Ό μ΄λ»κ² κ³ μΉ μ μμ΅λκΉ?
@brian2694 μλ‘μ΄ λ°©λ² ->rawColumns(['column_with_html'])
μ μ¬μ©νμμμ€.
λΉμ·ν λ¬Έμ κ° μμ΅λλ€. 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);
μ’μ!
μ΄μ©λ©΄ νμ©
->rawColumns(['*'])
?
@divdax λ ->escapeColumns([])
λ₯Ό μ¬μ©νμ¬ λμΌν κ²°κ³Όλ₯Ό μ»μ μ μμ΅λλ€.
μ λ§ κ°μ¬ν©λλ€ μ΄κ²μ λ§€μ° λμμ΄λ©λλ€
->escapeColumns([]) λλ₯Ό μν΄ μΌνμ΅λλ€. rawColumns('column_with_html')λ κ·Έλ μ§ μμμ΅λλ€.
"yajra/laravel-datatables-oracle"κ³Ό ν¨κ» laravel 5.5 μ¬μ©: "~8.0"
λλΌ, rawColumnsλ λ°°μ΄ μΈμλ₯Ό μ·¨νλ―λ‘ rawColumns(['column_with_html'])μ΄μ΄μΌ ν©λλ€.
μ΄μμ 보기λ₯Ό λ λλ§νλ €λ©΄ λ€μμ μνν μ μμ΅λλ€.
->editColumn('action', function(User $u){
return view('users.action-btns', ['id'=>$u->id])->render();
})
λ·°μ ν¨κ» λ λλ§νκΈ° μν΄ μ΄μ νΈμ§νλ κ²½μ° κΈ°λ³Έμ μΌλ‘ λ·°κ° λΈλ μ΄λμ μν΄ μμ ν μ΄μ€μΌμ΄νλλ―λ‘ λ€μ μ΄μ€μΌμ΄νν νμκ° μλ€κ³ κ°μ ν μ μμ΅λκΉ? λ³΄κΈ°λ‘ νΈμ§λ μ΄μ action
μ΄μ΄ μ΄λ―Έ μλ κ²μ²λΌ (κΈ°λ³Έμ μΌλ‘) μμλ‘ μλ μ€μ λ μ μμ΅λλ€(λ¬Έμμμλ μ΄μ λν΄ μΈκΈνμ§ μμ).
λλ κ°μ λ¬Έμ κ° μκ³ λ΄ μΉκ΅¬λ ->escapeColumns([])μ κ·Έ μνμ μΆκ°νλΌκ³ λμκ² λ§νλ€.
`if ($request->ajax()) {
$ajax = Datatables::of(Admin::query())->escapeColumns([])->make(true);
$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 escapeColumns([])
μ΄(κ°) 무μμ νλμ§ μ΄ν΄ν©λκΉ? HTML μ΄μ€μΌμ΄νλ₯Ό μ μ©νκΈ° μν΄ NO μ΄μ μ€μ νμ¬ λͺ¨λ HTML μ΄μ€μΌμ΄νλ₯Ό λΉνμ±ν ν κ²μ²λΌ 보μ
λλ€. μ΄κ²μ ν κ°μ§ λ¬Έμ λ₯Ό μ½κ² ν΄κ²°ν μ μλ λ°©λ²μΌ μ μμΌλ©°, κ·Έλ‘ μΈν΄ λ€λ₯Έ μν©μμ μνν μν©μ λΉ μ§κ² λ©λλ€.
μ΄κ²μ λλ₯Ό μν΄ μ¬λ°λ₯΄κ² μλν©λλ€.
@judgejλ λ§μ μ λμν©λλ€. λͺ¨λ μ΄μ μ΄μ€μΌμ΄ννλ μνμ κ°μνκ³ μΆμ§ μμ§λ§ μμλ‘ λ§λ€κ³ μΆμ κ²μ μ κ·Όμμ΄λ©° $datatables->rawColumns(['full_link']);
λ‘ μμ κ²°κ³Όλ₯Ό μμ±νμ§ μμ΅λλ€.
@yajra μ΄ λ¬Έμλ₯Ό μ λ°μ΄νΈνμμμ€
https://datatables.yajrabox.com/eloquent/add-edit-remove-column
κ°μ₯ μ μ©ν λκΈ