Laravel-datatables: [7.0] рдПрдЪрдЯреАрдПрдордПрд▓ рдкреНрд░рд╕реНрддреБрдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 27 рдЬрдире░ 2017  ┬╖  18рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: yajra/laravel-datatables

рдореИрдВ Laravel Datatables 7 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореЗрд░реА рддрд╛рд▓рд┐рдХрд╛ HTML рдХреЛрдб рдкреНрд░рд╕реНрддреБрдд рдирд╣реАрдВ рдХрд░ рд░рд╣реА рд╣реИред рдпрд╣ рдкрд╣рд▓реЗ HTML рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░ рд░рд╣рд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЬрдм рдореИрдВрдиреЗ рдирдП Laravel DataTables рдХреЛ 6 рд╕реЗ 7 рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛, рддреЛ рдЗрд╕рдиреЗ HTML рдХреЛ рдХреЙрд▓рдо рдореЗрдВ рд░реЗрдВрдбрд░ рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ред http://prntscr.com/e11n84

рдпрд╣ рд▓рд╛рд░рд╡реЗрд▓ рдбреЗрдЯрд╛рдЯреЗрдмрд▓реНрд╕ 6 рдХреЗ рд╕рд╛рде рд╣реИ - http://prntscr.com/e11ph0

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

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

рд╕рднреА 18 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдкрд░рд┐рдгрд╛рдо рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ v7 рдкрд░ рдмрдЪ рдЬрд╛рддреЗ рд╣реИрдВред рдЕрднреА рддрдХ рд╕рднреА рдмреНрд░реЗрдХрд┐рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬреАрдХрд░рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкрд░рд┐рд╡рд░реНрддрди рд▓реЙрдЧ рдХреЛ рдХреБрдЫ рд╕реБрд░рд╛рдЧ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдзрдиреНрдпрд╡рд╛рдж!

рдореИрдВ рдЙрд╕реА рд╕рдорд╕реНрдпрд╛ рдХреЛ рдХреИрд╕реЗ рдареАрдХ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдБ рд▓реЗрдХрд┐рди рд╕реЗрд╡рд╛ рдореЗрдВ?

@brian2694 рдирдИ рд╡рд┐рдзрд┐ ->rawColumns(['column_with_html']) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

рдореБрдЭреЗ рдЗрд╕реА рддрд░рд╣ рдХреА рд╕рдорд╕реНрдпрд╛ рд╣реИ, рдХрдЪреНрдЪреЗ рдХреЙрд▓рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЙрджрд╛рд╣рд░рдг?

    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([]) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред

рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж рдпрд╣ рдмрд╣реБрдд рдорджрджрдЧрд╛рд░ рд╣реИ

-> рдПрд╕реНрдХреЗрдк рдХреЙрд▓рдо ([]) рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛ред rawColumns('column_with_html') рдирд╣реАрдВ рдХрд┐рдпрд╛ред
"рдпрдЬрд░рд╛/рд▓рд╛рд░рд╡реЗрд▓-рдбреЗрдЯрд╛рдЯреЗрдмрд▓реНрд╕-рдУрд░реЗрдХрд▓" рдХреЗ рд╕рд╛рде рд▓рд╛рд░реНрд╡рд╛ 5.5 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛: "~8.0"

рдирд╛рд░рд╛, рдХрдЪреНрдЪреЗ рдХреЙрд▓рдо рдПрдХ рд╕рд░рдгреА рддрд░реНрдХ рд▓реЗрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдХрдЪреНрдЪреЗ рдХреЙрд▓рдо (['column_with_html']) рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП

рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рдХреЙрд▓рдо рдореЗрдВ рджреГрд╢реНрдп рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдЖрдк рдпрд╣ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

  ->editColumn('action', function(User $u){
       return view('users.action-btns', ['id'=>$u->id])->render();
  })

рдпрджрд┐ рдореИрдВ рдПрдХ рдХреЙрд▓рдо рдХреЛ рдПрдХ рджреГрд╢реНрдп рдХреЗ рд╕рд╛рде рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдкрд╛рджрд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рддреЛ рдХреНрдпрд╛ рдпрд╣ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдирд╣реАрдВ рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рджреГрд╢реНрдп рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмреНрд▓реЗрдб рд╕реЗ рдмрдЪ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдЗрд╕рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ рдмрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ? рдПрдХ рджреГрд╢реНрдп рдХреЗ рд╕рд╛рде рд╕рдВрдкрд╛рджрд┐рдд рдПрдХ рдХреЙрд▓рдо рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ) рдХрдЪреНрдЪреЗ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреИрд╕реЗ action рдХреЙрд▓рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдЗрд╕рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ)ред

рдореБрдЭреЗ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ, рдФрд░ рдореЗрд░реЗ рджреЛрд╕реНрдд рдиреЗ рдореБрдЭреЗ -> рдПрд╕реНрдХреЗрдк рдХреЙрд▓рдо ([]), рдФрд░ рдЗрд╕рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ред

`рдЕрдЧрд░ ($ рдЕрдиреБрд░реЛрдз-> рдЕрдЬрд╛рдХреНрд╕ ()) {
$ajax = Datatables::of(Admin::query())->escapeColumns([])->make(true);
$ рдЕрдЬрд╛рдХреНрд╕ рд╡рд╛рдкрд╕ рдХрд░реЗрдВ;
}

    $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 рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдХреЙрд▓рдо рд╕реЗрдЯ рдХрд░рдХреЗ рд╕рднреА HTML рд╕реЗ рдмрдЪрдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА HTML рдХреЛ рдЕрдХреНрд╖рдо рдХрд░ рджреЗрддрд╛ рд╣реИред рдпрд╣ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдЖрдкрдХреЛ рджреВрд╕рд░реА рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдЦрддрд░рдирд╛рдХ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИред


-> рдПрд╕реНрдХреЗрдк рдХреЙрд▓рдо ([])

рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рд╕рд╣реА рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред

рдореИрдВ @judgej рд╕реЗ рд╕рд╣рдордд рд╣реВрдВред рдореИрдВ рд╕рднреА рдХреЙрд▓рдо рд╕реЗ рдмрдЪрдиреЗ рдХрд╛ рдЬреЛрдЦрд┐рдо рдирд╣реАрдВ рдЙрдард╛рдирд╛ рдЪрд╛рд╣рддрд╛, рд▓реЗрдХрд┐рди рдЬрд┐рд╕реЗ рдореИрдВ рдХрдЪреНрдЪрд╛ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рд╡рд╣ рдПрдХ рдПрдХреНрд╕реЗрд╕рд░ рд╣реИ рдФрд░ $datatables->rawColumns(['full_link']); рдХреЗ рд╕рд╛рде рдХрдЪреНрдЪрд╛ рдкрд░рд┐рдгрд╛рдо рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ

@yajra рдХреГрдкрдпрд╛ рдЗрд╕ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ

https://datatables.yajrabox.com/eloquent/add-edit-remove-column

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

jackrsantana picture jackrsantana  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

macnux picture macnux  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ahmadbadpey picture ahmadbadpey  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

techguydev picture techguydev  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

kamrava picture kamrava  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ