Laravel-datatables: AddColumn рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рдХреЙрд▓рдо рдореЗрдВ рдХреИрд╕реЗ рдЦреЛрдЬреЗрдВ?

рдХреЛ рдирд┐рд░реНрдорд┐рдд 3 рдЕрдЧре░ 2015  ┬╖  22рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: yajra/laravel-datatables

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЗрд╕ рдЕрджреНрднреБрдд рдкреИрдХреЗрдЬ рдХреЗ рд▓рд┐рдП рдмрдврд╝рд┐рдпрд╛ рдХрд╛рдоред

рдореБрдЭреЗ рдПрдХ рдЫреЛрдЯреА рд╕реА рд╕рдорд╕реНрдпрд╛ рд╣реИ:

рдореИрдВрдиреЗ рдЖрдкрдХреА рдбреЗрдореЛ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдПрдХ рдирдпрд╛ рдХрд╕реНрдЯрдо рдХреЙрд▓рдо рдЬреЛрдбрд╝рд╛: .../рд╡рд╛рдХреНрдкрдЯреБ/рдРрдб-рдПрдбрд┐рдЯ-рд░рд┐рдореВрд╡-рдХреЙрд▓рдо, рдореИрдВ рдЙрд╕ рдХреЙрд▓рдо рдХреЛ рдЦреЛрдЬрдирд╛/рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЬрдм рдореИрдВ рд╕рдм рдХреБрдЫ рдЗрдирдкреБрдЯ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдореБрдЭреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдПрдХ рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИред

рдХреНрдпрд╛ рдХрд╕реНрдЯрдо рдХреЙрд▓рдо рдореЗрдВ рдЦреЛрдЬ/рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рд╣реИ рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдХреЙрд▓рдо рдХреЗ рд▓рд┐рдП рдПрдХ рдЦреЛрдЬ рдЗрдирдкреБрдЯ рдЯреЗрдХреНрд╕реНрдЯ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдЬрд┐рд╕рдореЗрдВ custom_column рднреА рд╢рд╛рдорд┐рд▓ рд╣реИ?

рдлрд╛рдпрд░рдмрдЧ рдХрдВрд╕реЛрд▓ рдореЗрдВ рддреНрд░реБрдЯрд┐:

  <span class="exception_message">SQLSTATE[42S22]: Column not found: 1054 Champ
 &#039;new_column&#039; inconnu dans where clause (SQL: select count(*) as aggregate from (select &#039
;1&#039; as row_count from `users` where (LOWER(`id`) LIKE %b% or LOWER(`name`) LIKE %b% or LOWER(`email
`) LIKE %b% or LOWER(`created_at`) LIKE %b% or LOWER(`updated_at`) LIKE %b% or LOWER(`new_column`) LIKE
 %b%)) count_row_table)</span>

рдирд┐рдпрдВрддреНрд░рдХ рд╕реЗ рдХреЛрдб:

    public function getAddEditRemoveColumnData()
    {
        $users = User::select(['id', 'name', 'email', 'password', 'created_at', 'updated_at']);

        return Datatables::of($users)
                                 ->addColumn('new_column' , 'ABC')
                                  ->make(true)
    }

рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рдХреЛрдб:

    $('#users-table').DataTable({
        processing: true,
        serverSide: true,
        ajax: '{{ url("eloquent/add-edit-remove-column-data") }}',
        columns: [
            {data: 'id', name: 'id'},
            {data: 'name', name: 'name'},
            {data: 'email', name: 'email'},
            {data: 'created_at', name: 'created_at'},
            {data: 'updated_at', name: 'updated_at'},
            {data: 'new_column', custom: 'new_column', orderable: true, searchable: true}
        ]
    });

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

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

$users = User::select([
'id', 'name', 'email', 'password', 'created_at', 'updated_at',
DB::raw("'ABC' as new_column")
]);

рдиреЛрдЯ: рдЗрд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдПрдХ рдХрд╕реНрдЯрдо filterColumn рд▓рд┐рдЦрдирд╛ рдкрдбрд╝ рд╕рдХрддрд╛ рд╣реИред рдмрд╕ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЙрддреНрдкрдиреНрди рдПрд╕рдХреНрдпреВрдПрд▓ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдкреИрдХреЗрдЬ рдХреЗ рд╕рд╛рде рднреА рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

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

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

$users = User::select([
'id', 'name', 'email', 'password', 'created_at', 'updated_at',
DB::raw("'ABC' as new_column")
]);

рдиреЛрдЯ: рдЗрд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдПрдХ рдХрд╕реНрдЯрдо filterColumn рд▓рд┐рдЦрдирд╛ рдкрдбрд╝ рд╕рдХрддрд╛ рд╣реИред рдмрд╕ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЙрддреНрдкрдиреНрди рдПрд╕рдХреНрдпреВрдПрд▓ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдкреИрдХреЗрдЬ рдХреЗ рд╕рд╛рде рднреА рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдирд┐рд╖реНрдХреНрд░рд┐рдпрддрд╛ рдХреЗ рдХрд╛рд░рдг рдмрдВрдж рдХрд░рдирд╛ рдФрд░ рдКрдкрд░ рд╕реБрдЭрд╛рдП рдЧрдП рд╕рдорд╛рдзрд╛рди рд╕реЗ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдзрдиреНрдпрд╡рд╛рдж!

@yajra рдореИрдВрдиреЗ рдкрд╣рд▓реЗ 'рдЪрдпрди' (рдирд┐рдпрдВрддреНрд░рдХ рдореЗрдВ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдкрд░рд┐рдХрд▓рд┐рдд рдХреЙрд▓рдо рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЗ рд╕реБрдЭрд╛рд╡ рдХрд╛ рдкрд╛рд▓рди рдХрд┐рдпрд╛

$staffData = Staff::select('id', 'staff_id', \DB::raw('concat(first_name, " ", middle_name, " ", last_name) as full_name'), 'department_name', 'status');

рдлрд┐рд░ рдореИрдВрдиреЗ рдПрдХ рдХрд╕реНрдЯрдо рдлрд╝рд┐рд▓реНрдЯрд░ рдЬреЛрдбрд╝рд╛ (рдирд┐рдпрдВрддреНрд░рдХ рдореЗрдВ)

$dt = Datatables::of($staffData);
return $dt->filterColumn('full_name', function($query, $keyword) {
            $query->whereRaw("CONCAT(first_name, ' ', middle_name, ' ', last_name) like ?", ["%{$keyword}%"]);
        })->make(true);

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

Ajax error. http://datatables.net/tn/7

рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдмрддрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдореИрдВ рдХрд╣рд╛рдБ рдЧрд▓рддреА рдХрд░ рд░рд╣рд╛ рд╣реВрдБред

@ AshishGupta001 рдХреНрд░реЛрдо рджреЗрд╡ рдЯреВрд▓реНрд╕ рдпрд╛

@yajara рдЖрдкрдХреА рддреНрд╡рд░рд┐рдд рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред
рдПрдХ 'рдЧрдгрдирд╛' рдХреЙрд▓рдо рдХреЗ рд▓рд┐рдП рд╡реИрд╢реНрд╡рд┐рдХ рдЦреЛрдЬ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╕рдордп (рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ 'full_name') рдореИрдВрдиреЗ рдЗрд╕рдХрд╛ рд╕рдВрджрд░реНрдн рд▓рд┐рдпрд╛
1) рдЕрдВрдХ 168 : https://github.com/yajra/laravel-datatables/issues/168
2) рдЙрджрд╛рд╣рд░рдг: https://datatables.yajrabox.com/eloquent/post-column-search

рдореЗрд░реЗ рдбреЗрдЯрд╛рдЯреЗрдмрд▓ рдХреЗ рд▓рд┐рдП рдХрд╕реНрдЯрдо 'рдлрд╝рд┐рд▓реНрдЯрд░ рдХреЙрд▓рдо ()' рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдореБрдЭреЗ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдЕрдиреБрдкрд▓рдмреНрдз рдХреЙрд▓рдо 'full_name' рдХреЗ рд▓рд┐рдП рд╢рд┐рдХрд╛рдпрдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ SQL рдЕрдкрд╡рд╛рдж рдорд┐рд▓ рд░рд╣рд╛ рдерд╛ред рдлрд┐рд░ рдореИрдВрдиреЗ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП 'рдЧрдгрдирд╛' рдХреЙрд▓рдо (рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ 'full_name') рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╕реНрдЯрдо рдлрд╝рд┐рд▓реНрдЯрд░ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдХреЛрдб рдХреЛ рдЬреЛрдбрд╝рд╛

$dt->filterColumn('full_name', function($query, $keyword) {
       $query->whereRaw("CONCAT(staff.first_name, ' ', staff.middle_name, ' ', staff.last_name) like ?", ["%{$keyword}%"]);
});

return $dt->make(true);

рдЕрдм рдореБрдЭреЗ рд▓реЙрдЧ рдореЗрдВ рдирд┐рдореНрди рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ:

mb_strtolower() expects parameter 1 to be string, object given рдлрд╝рд╛рдЗрд▓ рдореЗрдВ ......./vendor/laravel/framework/src/Illuminate/Support/Str.php#162

рд╕рд░рд╛рд╣рдирд╛ рдХрд░реЗрдВ рдХрд┐ рдХреНрдпрд╛ рдЖрдк рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдбреАрдмрдЧ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

@ AshishGupta001 рдЖрдк рдХрд┐рд╕ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ? рдЖрдкрдХрд╛ рдХреЛрдб рдореБрдЭреЗ рдареАрдХ рд▓рдЧ рд░рд╣рд╛ рд╣реИред

@yajra рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рд╕рдВрд╕реНрдХрд░рдг рдиреАрдЪреЗ рдХреЗ рд░реВрдк рдореЗрдВ рд╣реИрдВ

рдкреАрдПрдЪрдкреА - 5.5.38-3
Laravel - 5.0.34
Datatables - yajra / laravel-datatables-рдУрд░реЗрдХрд▓: ^ 6.3 (composer.json рдХреЗ рд░реВрдк рдореЗрдВ)

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣реЗрд▓реНрдкрд░ рдХреНрд▓рд╛рд╕ рдореЗрдВ 'getOrMethod' рдореЗрдВ, рдЕрдкрд╡рд╛рдж рдлреЗрдВрдХрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЗрдирдкреБрдЯ рдкреИрд░рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд "рдХреНрд▓реЙрд╕рд░" рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИред

public static function getOrMethod($method) {
   if (! Str::contains(Str::lower($method), 'or')) {
      return 'or' . ucfirst($method);
   }
      return $method;
}

'$рд╡рд┐рдзрд┐' рдПрдХ рдХреНрд▓реЛрдЬрд░ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ function($query, $keyword) рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдиреАрдЪреЗ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ

Closure {#864
  reflection: """
    Closure [ <user> public method App\Http\Controllers\{closure} ] {\n
      @@ /var/www/html/XYZ/app/Http/Controllers/StaffHistoryController.php 310 - 313\n
    \n
      - Parameters [2] {\n
        Parameter #0 [ <required> $query ]\n
        Parameter #1 [ <required> $keyword ]\n
      }\n
    }\n
    """
}

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

рджреЗрдЦреЗрдВ: рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЯреИрдЧ рдХреЗ рднреАрддрд░ рджреГрд╢реНрдп рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд░рдЦреЗрдВ

{ data: 'full_name', name: 'full_name', searchable: false },
{ data: 'first_name', name: 'first_name', searchable: true, visible: false },
{ data: 'middle_name', name: 'middle_name', searchable: true, visible: false },
{ data: 'last_name', name: 'last_name', searchable: true, visible: false }

рдирд┐рдпрдВрддреНрд░рдХ: рд╢реЗрд╖ рдХреЙрд▓рдо рдорд╛рдиреЛрдВ рдХреЗ рд╕рд╛рде SQL рдХреНрд╡реЗрд░реА рдореЗрдВ first_name рдЖрджрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред

@ AshishGupta001 рдЦреБрд╢реА рд╣реИ рдХрд┐ рдЖрдкрдиреЗ рдЗрд╕реЗ рд╕рдордЭ рд▓рд┐рдпрд╛ред рд▓рд╛рд░рд╡реЗрд▓ 4.2 рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдмрд╛рдж рд╕реЗ рдореИрдВ рднреА рдпрд╣реА рдХрд░рддрд╛ рдерд╛ред рдореИрдВ

@ AshishGupta001 рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди!

@yajra рдХреНрдпрд╛ рд╣рдо

рдпрд╛ рд╣рдореЗрдВ рдЗрд╕реЗ JS рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЗрд╕реЗ рдЕрджреГрд╢реНрдп рд▓реЗрдХрд┐рди рдЦреЛрдЬрдиреЗ рдпреЛрдЧреНрдп рдмрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдП?

рдХреБрдЫ рддрд░реАрдХреЗ рдЬрд┐рдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореИрдВ рд╕реЛрдЪ рд╕рдХрддрд╛ рд╣реВрдВ:

  1. рдЗрд╕реЗ рдЬреЗрдПрд╕ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ рдФрд░ рдЗрд╕реЗ рдЕрджреГрд╢реНрдп рдФрд░ рдЦреЛрдЬрдиреЗ рдпреЛрдЧреНрдп рдмрдирд╛рдПрдВ рдЬреИрд╕рд╛ рдЖрдкрдиреЗ рдХрд╣рд╛ рдерд╛ред
  2. рдЬреЛрдбрд╝реЗ рдЧрдП рдХреЙрд▓рдо рдХреА рдЦреЛрдЬ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рд┐рд▓реНрдЯрд░ рдХреЙрд▓рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
  3. рдЗрд╕реЗ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдШреЛрд╖рд┐рдд рдХрд░реЗрдВ:
{data: 'added_column', name: 'actual_column_name'}

рдЖрдкрдХреА рддреНрд╡рд░рд┐рдд рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж @yajra

рдореИрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рджреВрд╕рд░реЗ рд╕рдорд╛рдзрд╛рди рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рдерд╛, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдЗрд╕ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЙрд▓рдо рдХреЛ рдХреНрд╡реЗрд░реА рдореЗрдВ рдирд╣реАрдВ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред

рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ ?

рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдиреЗ рдЙрд╕ рдХреЙрд▓рдо рдореЗрдВ searchable: false рдирд╣реАрдВ рдЬреЛрдбрд╝рд╛ рд╣реИред

рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдореИрдВрдиреЗ ->addColumn('company_name', function($deal) { return $deal->company_name; }) . рдХреЙрд▓рдо рдЬреЛрдбрд╝рд╛

рдФрд░ рд╡реИрд╢реНрд╡рд┐рдХ рдЦреЛрдЬ рдХреНрд╡реЗрд░реА $dataTable->filterColumn('company_name', 'where', "like", ["%$keyword%"]);

рдХреНрдпрд╛ рд╣рдо рдмреИрдХрдПрдВрдб рдореЗрдВ searchable: false рдкрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

searchable: false рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб js рдкрд░ рд╣реИред

рдмреАрдЯреАрдбрдмреНрд▓реНрдпреВ, рдЖрдк рдХрд┐рд╕ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?

рдЖрд╣ рдЕрдЪреНрдЫрд╛ред рддреЛ рд╣рдореЗрдВ рдЕрднреА рднреА рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдмрддрд╛рдП рдЧрдП рдкрд╣рд▓реЗ рддрд░реАрдХреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдореИрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ v6.17.0

рдореЗрд░реЗ рдкрд╛рд╕ @ AshishGupta001 рдЬреИрд╕реА рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рдЯреНрд░рд┐рдХ рдЗрд╕реЗ рдирд╣реАрдВ рдХрд╛рдЯрддреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдХреЙрд▓рдо
рдореИрдВрдиреЗ рдлрд╝рд┐рд▓реНрдЯрд░ рдХреЙрд▓рдо рд╡рд┐рдХрд▓реНрдк рдХреА рдЦреЛрдЬ рдХреА рд╣реИ рд▓реЗрдХрд┐рди рдЗрд╕реЗ рднреА рдХрд╛рдо рдкрд░ рдирд╣реАрдВ рд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрд╛ред
"рдпрдЬрд░рд╛/рд▓рд╛рд░рд╡реЗрд▓-рдбреЗрдЯрд╛рдЯреЗрдмрд▓реНрд╕-рдУрд░реЗрдХрд▓" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛: "~9.0"

рдирд┐рдпрдВрддреНрд░рдХ рд╡рд┐рдзрд┐:

    public function getAccounts(Request $request)
    {
        if ($request->ajax()) {
            $accounts = Account::with('current_marketer')->select([
                '*',
                DB::raw("CONCAT(accounts.lastname,' ',accounts.firstname) as fullname"),
            ]);
            return Datatables::of(Account::query()->with('current_marketer'))
            ->addColumn('marketer', function(Account $account){
                return $account->current_marketer->name;
            })
            ->addColumn('fullname', function($account){
                return '<a href="'.route('account.clients.show', $account->account_number).'" class="hover:underline" target="_blank">'. $account->fullname.'</a>';
            })
            ->filterColumn('fullname', function($query, $keyword) {
                $sql = "CONCAT(accounts.lastname,' ',accounts.firstname)  like ?";
                $$query->whereRaw($sql, ["%{$keyword}%"]);
            })
            ->rawColumns(['fullname'])
            ->editColumn('created_on', function(Account $account) {
                return Carbon::parse($account->created_on)->format('jS F, Y');
            })
            ->toJson();
        }
        return view('datatables.accounts.index');
    }

рдмреНрд▓реЗрдб рдЬреЗрдПрд╕:

 $('#accounts-table').DataTable({
          "processing": true,
          "serverSide": true,
          "ajax": '{{ route('accounts.get') }}',
          "columns": [
            { data: "id" },
            { data: "account_number" },
            { data: 'fullname'},
            { data: "marketer" },
            { data: "created_on" },
          ]
        });

рдЕрдкрд╡рд╛рдж: рдЬрдм рдЦреЛрдЬ рдпрд╛ рдЫрдБрдЯрд╛рдИ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

yajraIssue

рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдЙрд╕ рдЕрдкрд╡рд╛рдж рдХреЗ рд╕рд╛рде рдореЗрд░реА рдЧрд▓рддреА рдереА; рдореЗрд░реЗ рдкрд╛рд╕ рдореЗрд░реЗ рдлрд╝рд┐рд▓реНрдЯрд░ рдХреЙрд▓рдо рд╡рд┐рдзрд┐ рдХреЗ рднреАрддрд░ рдПрдХ рдбрдмрд▓ '$$' рдЪрд┐рд╣реНрди рдерд╛ред
yajra_issue_fix_1

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕рдиреЗ рдореЗрд░реА рд╕реЙрд░реНрдЯрд┐рдВрдЧ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдирд╣реАрдВ рдХрд┐рдпрд╛ред рдореБрдЭреЗ рдЕрднреА рднреА рдЬрд╛рдирдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ:

  1. рдХреЙрд▓рдо рдХреЛ рд╕реЙрд░реНрдЯ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдХреИрд╕реЗ рдмрдирд╛рдПрдВ
  2. рд╕рдВрдмрдВрдзрд┐рдд рдХреЙрд▓рдо рдХреЛ рдХреИрд╕реЗ рдЦреЛрдЬреЗрдВ рдФрд░ рдХреНрд░рдордмрджреНрдз рдХрд░реЗрдВ рдбреЙрдХреНрд╕ рдкрд░ рдПрдХ рдФрд░ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ рдЗрд╕реЗ рдореЗрд░реЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рдлрд╝ рдХрд░реЗрдВ

@seewhy17 рдЖрдк рдЬрдЯрд┐рд▓ рдЫрдБрдЯрд╛рдИ рдХреЗ рд▓рд┐рдП рдСрд░реНрдбрд░ рдХреЙрд▓рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЖрдкрдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, fullname рджреНрд╡рд╛рд░рд╛ рдСрд░реНрдбрд░ рдХрд░рдирд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред

@seewhy17 рдЖрдк рдЬрдЯрд┐рд▓ рдЫрдБрдЯрд╛рдИ рдХреЗ рд▓рд┐рдП рдСрд░реНрдбрд░ рдХреЙрд▓рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЖрдкрдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, fullname рджреНрд╡рд╛рд░рд╛ рдСрд░реНрдбрд░ рдХрд░рдирд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред

рдЦреИрд░ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реБрдЖ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдлрд╝рд┐рд▓реНрдЯрд░ рдХреЙрд▓рдо рд╡рд┐рдзрд┐ рдореЙрдбрд▓ рдкрд░ рдПрдХ рдирд┐рд░реНрдзрд╛рд░рдХ рдХреЗ рд╕рд╛рде рд╕рдВрдШрд░реНрд╖ рдХрд░рддреА рд╣реИ рдЬреЛ рдореВрд▓ рд░реВрдк рд╕реЗ рд╡рд╣реА рдХрд╛рдо рдХрд░рддреА рд╣реИ ... рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ред
рдпрд╣ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдореБрдЭреЗ рдЬреЗрдПрд╕ рдореЗрдВ name: lastname рдЬреЛрдбрд╝рдХрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд┐рд▓рд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЕрдВрддрд┐рдо рдирд╛рдо рд╕реЗ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдлрд╝рд┐рд▓реНрдЯрд░ рдХреЙрд▓рдо рд╡рд┐рдзрд┐ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╣реИ

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

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

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

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

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

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

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