Laravel-datatables: рдкрд╛рдж рд▓реЗрдЦ рдХреЙрд▓рдо рдореЗрдВ рдХреБрд▓ рд╕рд╛рд░рд╛рдВрд╢

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

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

рдкрд╛рдж рд▓реЗрдЦ рд╕реНрддрдВрдн рдХрд╛ рд╕рд╛рд░рд╛рдВрд╢ рдХреИрд╕реЗ рдмрдирд╛рддреЗ рд╣реИрдВ?

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

        $dataTableQuery = Users::query()
            ->leftJoin('user_info', 'users.id', '=', 'user_info.id')
            ->select([
                'users.id',
                'users.username',
                'users.role_id',
                'user_info.first_name',
                'user_info.last_name',
                'user_info.email',
                'users.blocked',
                'users.balance',
                'users.created',
            ]);

$sums = [
            'sum_balance' => '0',
        ];

        $datatables = Datatables::of($dataTableQuery )
            ->escapeColumns(['first_name', 'last_name', 'email'])
            ->editColumn('created', function ($user) {
                return Carbon::createFromFormat('Y-m-d H:i:s', $user->created)->toDateString();
            })
            ->editColumn('blocked', function ($user) {
                return $user->blocked_label;
            })
            ->addColumn('actions', function ($user) {
                return $user->gamers_buttons;
            })
            ->filter(function ($query) use ($request) {
                if ($request->has('username')) {
                    $query->where('username', 'like', "%{$request->get('username')}%");
                }
            })
            ->addSum('sum_balance', DB::raw("sum(balance)")) <-- How do it?
            ->with('sums', $sums);

->

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

  • рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рд╡рд┐рдВрдбреЛрдЬ 8.1
  • PHP рд╕рдВрд╕реНрдХрд░рдг 5.6.29
  • рд▓рд╛рд░рд╡реЗрд▓ рд╕рдВрд╕реНрдХрд░рдг 5.4
  • рд▓рд╛рд░рд╡реЗрд▓-рдбреЗрдЯрд╛рдЯреИрдмрд▓реНрд╕ рд╕рдВрд╕реНрдХрд░рдг 7

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

$ dataTableQuery - рдпрд╣ рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рдФрд░ / рдпрд╛ рдЦреЛрдЬ рдбреЗрдЯрд╛ рдХреЗ рдмрд┐рдирд╛ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╕рднреА рдмрд╛рдзреНрдпрдХрд╛рд░реА рдкрд╛рд░реНрдореНрд╕ рдХреЗ рд╕рд╛рде рдкрд╛рд░реНрд╕ рдХреА рдЧрдИ рдХреНрд╡реЗрд░реА рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ?

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

DT рдкрд░ рдкрд╛рд╕ рдХреА рдЧрдИ рд╕рдорд╛рди рдХреНрд╡реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдЬреИрд╕реЗ:

->with('sum_balance', $dataTableQuery->sum('balance'))

$ dataTableQuery - рдпрд╣ рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рдФрд░ / рдпрд╛ рдЦреЛрдЬ рдбреЗрдЯрд╛ рдХреЗ рдмрд┐рдирд╛ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╕рднреА рдмрд╛рдзреНрдпрдХрд╛рд░реА рдкрд╛рд░реНрдореНрд╕ рдХреЗ рд╕рд╛рде рдкрд╛рд░реНрд╕ рдХреА рдЧрдИ рдХреНрд╡реЗрд░реА рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ?

рдмреНрд▓реЗрдб рдореЗрдВ рдЗрд╕реЗ рдХреИрд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП?

@ yurik3zzz рдЖрдк рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рдЙрд╕ рдХреЗ рд▓рд┐рдП withQuery рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

@ рдкреНрд░рдХрд╛рд╢-рдкреЛрдЦрд░реЗрд▓ рдЖрдкрдХреЛ рдЕрдЬрд╛рдХреНрд╕ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдВрдЪрдХрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдХреБрдЫ рдЗрд╕ рддрд░рд╣: LaravelDataTables["users-table"].ajax.json()

@ рдпрд╛рдЬрд░рд╛ рдореБрдЭреЗ рдЕрднреА рднреА рдирд╣реАрдВ рдорд┐рд▓рд╛ред рдХреНрдпрд╛ рдореБрдЭреЗ рдЗрд╕реЗ html () рдбрд┐рдЯреЗрдЯреЗрдмрд▓ рдХреЗ рдлрдВрдХреНрд╢рди рдХреЗ рдЕрдВрджрд░ рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рд╕реАрдзреЗ рдмреНрд▓реЗрдб рдореЗрдВ рдбрд╛рд▓рдирд╛ рдЪрд╛рд╣рд┐рдПред Btw, рдореИрдВ рд╕реЗрд╡рд╛ рдХреЗ рд░реВрдк рдореЗрдВ datatable рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ

рдбреНрд░рд╛рдмреИрдХ рдкрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред

`` `рдЬреЗ.рдПрд╕.
$ ('# рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рддрд╛рд▓рд┐рдХрд╛')ред ('draw.dt', function () {
$ ('# рдХреБрд▓')ред рд╡реИрд▓ (рд▓рд╛рд░рд╛рд╡реЗрд▓реНрдбрдЯреЗрдмрд▓реНрд╕ ["рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рддрд╛рд▓рд┐рдХрд╛"]ред ajax.json ()) рдХреБрд▓ред
})

рдпрджрд┐ рдЖрдк рдирд╡реАрдирддрдо HTML рдкреИрдХреЗрдЬ v4.0 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдк рдХреБрдЫ рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

public function html()
{
  ...
  ->ajax()
  ->drawCallback('function() { $("#total").val( this.api().ajax.json().total ) }')
  ...

рдирдорд╕реНрддреЗ,
"# рдЯреЛрдЯрд▓" рдХрд╛ рдХреНрдпрд╛ рдЕрд░реНрде рд╣реИ
-> drawCallback ('рдлрд╝рдВрдХреНрд╢рди () {$ ("# рдХреБрд▓")ред Val (this.api ()! -jax.json ()ред рдХреБрд▓)}')ред

рдХреНрдпрд╛ рдпрд╣ рдЖрдИрдбреА рдЯреЗрдмрд▓ рдХреЗ рдЕрдВрджрд░ рд╣реИ рдпрд╛ рдЕрдиреНрдп html рдПрд▓рд┐рдореЗрдВрдЯ рдореЗрдВ рд╣реИ?

рдпрд╣ id рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рддрддреНрд╡ рдХреЗ рд▓рд┐рдП рдПрдХ jquery рдЪрдпрдирдХрд░реНрддрд╛ рд╣реИред

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

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

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

hari-web picture hari-web  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

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

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

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