Laravel-datatables: рдЦреЛрдЬ: id . рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд┐рд╢реЗрд╖рддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣рд╛ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 1 рдЬреВрди 2016  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: yajra/laravel-datatables

рд╕рдорд╕реНрдпрд╛ рдпрд╛ рд╕реБрд╡рд┐рдзрд╛ рдЕрдиреБрд░реЛрдз рдХрд╛ рд╕рд╛рд░рд╛рдВрд╢

рдПрдХ-рд╕реЗ-рдЕрдиреЗрдХ рд╕рдВрдмрдВрдз рдХрдИ рдЗрдХрд╛рдИ рдХреА рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рд╡рд╛рд▓реА рдЗрдХрд╛рдИ рдХреА рдЖрдИрдбреА рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рджрд╛рд╡рд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг: рд╕рдордиреНрд╡рдпрдХ рдПрдХ рдпрд╛ рдХрдИ рдХреЗрдВрджреНрд░реЛрдВ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рддрд╛ рд╣реИред рдПрдЪрдЯреАрдПрдордПрд▓ рдмрд┐рд▓реНрдбрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреЙрд▓рдо рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВ coodinator_id рдХреЙрд▓рдо рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рд╕рдордиреНрд╡рдпрдХреЛрдВ рдХрд╛ рдкреВрд░рд╛ рдирд╛рдо рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдХреНрд╕реЗрд╕рд░ рд╡рд┐рдзрд┐ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реВрдВ:

public function getFullNameAttribute()
{
    return $this->first_name . ", " . $this->last_name;
}

рдореЗрд░рд╛ рдЙрджреНрджреЗрд╢реНрдп рдХреЗрд╡рд▓ рдкреНрд░рдорд╛рдгреАрдХреГрдд рд╕рдордиреНрд╡рдпрдХ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХреЗрдВрджреНрд░реЛрдВ рдХреЛ рдбреЗрдЯрд╛рдЯреЗрдмрд▓ рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдирд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдкреНрд░рдорд╛рдгрд┐рдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдХ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рди рд╣реЛ рдЬреИрд╕рд╛ рдХрд┐ рдореЗрд░реЗ рдкреНрд░рд╢реНрдиреЛрдВ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдЧрд░ рдореИрдВ рдбреЗрдЯрд╛рдЯреЗрдмрд▓ рдкрд░ рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд╡рд╛рд▓реЗ рд╕рдордиреНрд╡рдпрдХ рдХреЙрд▓рдо рдХрд╛ рдорд╛рди рджрд░реНрдЬ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдпрд╣ рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рдорд┐рд▓рд╛рди рд░рд┐рдХреЙрд░реНрдб рдирд╣реАрдВ рдорд┐рд▓рд╛ред

рдореБрдЭреЗ рдпрд╣ рдХреИрд╕реЗ рд╣рд╛рд╕рд┐рд▓ рд╣реЛрдЧрд╛?

рдХреГрдкрдпрд╛ рдпрд╣рд╛рдВ рдЕрдкрдиреА рд╕рдорд╕реНрдпрд╛/рд╕реБрд╡рд┐рдзрд╛ рдЕрдиреБрд░реЛрдз рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВред

рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдХреЛрдб рд╕реНрдирд┐рдкреЗрдЯ

рдпрджрд┐ рд▓рд╛рдЧреВ рд╣реЛ, рддреЛ рдХреГрдкрдпрд╛ рдЕрдкрдиреЗ рдХреЛрдб рдХреА рдПрдХ рдкреНрд░рддрд┐ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ рдЬреЛ рд╕рдВрджрд┐рдЧреНрдз рдмрдЧ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реИред рдЖрдк рдЕрдкрдиреЗ рдкреЗрд╕реНрдЯ рдХреЛ рдкреНрд░рд╛рд░реВрдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рд░реНрдХрдбрд╛рдЙрди PHP рдХреЛрдб рдЯреИрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
<?php

namespace App\DataTables;
use Auth;
use App\Center;
use App\Coordinator;
use Yajra\Datatables\Services\DataTable;

class CentersDataTable extends DataTable
{
    // protected $printPreview  = 'path.to.print.preview.view';

    /**
     * Display ajax response.
     *
     * <strong i="13">@return</strong> \Illuminate\Http\JsonResponse
     */
    public function ajax()
    {
        return $this->datatables
            ->eloquent($this->query())
            ->editColumn('action', function ($center) {
                return '<a href="edit-center/'.$center->id.'" <i class="material-icons sideicons-tables">create</i>'; 
               // <a href="field-technician-delete/'.$user->id.'" <i class="material-icons sideicons-tables">delete</i>
            })
            ->editColumn('coordinator_id', function ($user) {
                return Coordinator::find($user->coordinator_id)->full_name;
                })
            ->editColumn('gps_lat', function ($center) {
                    return $center->gps_location ;
                })
            ->make(true);
    }

    /**
     * Get the query object to be processed by datatables.
     *
     * <strong i="14">@return</strong> \Illuminate\Database\Query\Builder|\Illuminate\Database\Eloquent\Builder
     */
    public function query()
    {
        if(Auth::user()->hasRole('admin')){
        $centers = Center::query();
        return $this->applyScopes($centers);
        }
        else{
            $centers = Center::query()->where('coordinator_id',Auth::user()->userable->id);
            return $this->applyScopes($centers);
        }
    }

    /**
     * Optional method if you want to use html builder.
     *
     * <strong i="15">@return</strong> \Yajra\Datatables\Html\Builder
     */
    public function html()
    {
        return $this->builder()
             ->columns([
                'id' => ['title' => 'ID'],
                'center_name' => ['title' => 'Name'], 
                'gps_lat' => ['title' => 'Coordinates'],
                'contact_no' => ['title' => 'Contact Number'],
                'coordinator_id' => [
                            'title' => 'Coordinator',
                            'searchable' => true
                ],
                'created_at' => [ 'title' => 'Created'],
                 'updated_at' => ['title' => 'Updated'], 
                'action' => [
                             'data'           => 'action',
                            'name'           => 'action',
                            'render'         => null,
                            'orderable'      => false,
                            'searchable'     => false,
                            'exportable'     => false,
                            'printable'      => false
                             ]
             ])
             ->parameters([
                 'dom' => 'Bfrtip',
                 'buttons' => ['csv', 'excel', 'print','reload'],
             ]);
    }

    /**
     * Get columns.
     *
     * <strong i="16">@return</strong> array
     */
    private function getColumns()
    {
        return [
            'id',
            // add your columns
            'created_at',
            'updated_at',
        ];
    }

    /**
     * Get filename for export.
     *
     * <strong i="17">@return</strong> string
     */
    protected function filename()
    {
        return 'centers';
    }
}

рд╕рд┐рд╕реНрдЯрдо рд╡рд┐рд╡рд░рдг

  • рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо: рдУрдПрд╕ рдПрдХреНрд╕ рдПрд▓ рдХреИрдкрд┐рдЯрди 10.11.5
  • рдкреАрдПрдЪрдкреА рд╕рдВрд╕реНрдХрд░рдг: 7.0.0
  • рд▓рд╛рд░рд╡реЗрд▓ рд╕рдВрд╕реНрдХрд░рдг: 5.1.36 (рдПрд▓рдЯреАрдПрд╕)
  • рд▓рд╛рд░рд╡реЗрд▓-рдбреЗрдЯрд╛рдЯреЗрдмрд▓реНрд╕ рд╕рдВрд╕реНрдХрд░рдг: 6.11.5

рд╕рд╛рджрд░,

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

рдПрдХ рддрд░рдХреАрдм рдЬреЛ рдЖрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рд╡рд╣ рд╣реИ рдЬреЗрдПрд╕ рдкрд░ рджреЛрдиреЛрдВ рдХреЙрд▓рдо рдЬреЛрдбрд╝рдирд╛ рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЗрдВ рддрд╛рдХрд┐ рд╡реЗ рдЕрднреА рднреА рдЦреЛрдЬреЗ рдЬрд╛ рд╕рдХреЗрдВ:

'last_name' => [
    'data' => 'coordinator.last_name',
    'visible' => false,
    'name' => 'coordinator.last_name',
],
'coordinator' => [
    'data' => 'coordinator',
    'name' => 'coordinator.first_name',
],

->addColumn('coordinator', function ($user) {
    return Area_Coordinator::find($user->area_coordinator_id)->full_name;
})

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

рдХреНрдпрд╛ рдЖрдк рд╕рдордиреНрд╡рдпрдХ рдХреЗ рдирд╛рдо рдкрд░ рдЦреЛрдЬ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВ? рдЕрдЧрд░ рдРрд╕рд╛ рд╣реИ рддреЛ рдЖрдк рдЗрд╕рдХреЗ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдЙрддреНрд╕реБрдХ рд▓реЛрдбрд┐рдВрдЧ рдпрд╛ рдЬреЙрдЗрди рдХреНрд╡реЗрд╢реНрдЪрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдореИрдВрдиреЗ рдЙрддреНрд╕реБрдХ рд▓реЛрдбрд┐рдВрдЧ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдЖрдкрдХреА рд╕рд╛рдЗрдЯ рдкрд░ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЕрдм рдореЗрд░рд╛ рдореБрджреНрджрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдореИрдВ рд╕рдордиреНрд╡рдпрдХреЛрдВ рдХрд╛ рдкреВрд░рд╛ рдирд╛рдо рдирд╣реАрдВ рд░рдЦ рд░рд╣рд╛ рд╣реВрдБ, рдмрд▓реНрдХрд┐ рдЙрдирдХрд╛ рдкрд╣рд▓рд╛ рдФрд░ рдЕрдВрддрд┐рдо рдирд╛рдо рдЕрд▓рдЧ-рдЕрд▓рдЧ рд░рдЦ рд░рд╣рд╛ рд╣реВрдБред рдореЗрд░реЗ рдкрд╛рд╕ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХреНрдпрд╛ рд╣реИ:
рдЬрд┐рдЬреНрдЮрд╛рд╕рд╛

$centers = Center::query()->with('coordinator')->where('coordinator_id',Auth::user()->userable->id);
            return $this->applyScopes($centers);

рдХреЙрд▓рдо

'first_name' => [
                'data' => 'coordinator.first_name',
                'name' => 'coordinator.first_name',
                            'title' => 'Coordinator',
                            'searchable' => true,
                ],

рд╡рд┐рдзрд┐ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ

->editColumn('first_name', function ($user) {
                return Area_Coordinator::find($user->area_coordinator_id)->full_name;
                })

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

рд╕рд╛рджрд░,

рдПрдХ рддрд░рдХреАрдм рдЬреЛ рдЖрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рд╡рд╣ рд╣реИ рдЬреЗрдПрд╕ рдкрд░ рджреЛрдиреЛрдВ рдХреЙрд▓рдо рдЬреЛрдбрд╝рдирд╛ рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЗрдВ рддрд╛рдХрд┐ рд╡реЗ рдЕрднреА рднреА рдЦреЛрдЬреЗ рдЬрд╛ рд╕рдХреЗрдВ:

'last_name' => [
    'data' => 'coordinator.last_name',
    'visible' => false,
    'name' => 'coordinator.last_name',
],
'coordinator' => [
    'data' => 'coordinator',
    'name' => 'coordinator.first_name',
],

->addColumn('coordinator', function ($user) {
    return Area_Coordinator::find($user->area_coordinator_id)->full_name;
})
рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

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

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

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

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

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

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