рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЗрд╕ рдЕрджреНрднреБрдд рдкреИрдХреЗрдЬ рдХреЗ рд▓рд┐рдП рдмрдврд╝рд┐рдпрд╛ рдХрд╛рдоред
рдореБрдЭреЗ рдПрдХ рдЫреЛрдЯреА рд╕реА рд╕рдорд╕реНрдпрд╛ рд╣реИ:
рдореИрдВрдиреЗ рдЖрдкрдХреА рдбреЗрдореЛ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдПрдХ рдирдпрд╛ рдХрд╕реНрдЯрдо рдХреЙрд▓рдо рдЬреЛрдбрд╝рд╛: .../рд╡рд╛рдХреНрдкрдЯреБ/рдРрдб-рдПрдбрд┐рдЯ-рд░рд┐рдореВрд╡-рдХреЙрд▓рдо, рдореИрдВ рдЙрд╕ рдХреЙрд▓рдо рдХреЛ рдЦреЛрдЬрдирд╛/рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЬрдм рдореИрдВ рд╕рдм рдХреБрдЫ рдЗрдирдкреБрдЯ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдореБрдЭреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдПрдХ рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИред
рдХреНрдпрд╛ рдХрд╕реНрдЯрдо рдХреЙрд▓рдо рдореЗрдВ рдЦреЛрдЬ/рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рд╣реИ рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдХреЙрд▓рдо рдХреЗ рд▓рд┐рдП рдПрдХ рдЦреЛрдЬ рдЗрдирдкреБрдЯ рдЯреЗрдХреНрд╕реНрдЯ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдЬрд┐рд╕рдореЗрдВ custom_column рднреА рд╢рд╛рдорд┐рд▓ рд╣реИ?
рдлрд╛рдпрд░рдмрдЧ рдХрдВрд╕реЛрд▓ рдореЗрдВ рддреНрд░реБрдЯрд┐:
<span class="exception_message">SQLSTATE[42S22]: Column not found: 1054 Champ
'new_column' inconnu dans where clause (SQL: select count(*) as aggregate from (select '
;1' 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
рд▓рд┐рдЦрдирд╛ рдкрдбрд╝ рд╕рдХрддрд╛ рд╣реИред рдмрд╕ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЙрддреНрдкрдиреНрди рдПрд╕рдХреНрдпреВрдПрд▓ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдкреИрдХреЗрдЬ рдХреЗ рд╕рд╛рде рднреА рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдирд┐рд╖реНрдХреНрд░рд┐рдпрддрд╛ рдХреЗ рдХрд╛рд░рдг рдмрдВрдж рдХрд░рдирд╛ рдФрд░ рдКрдкрд░ рд╕реБрдЭрд╛рдП рдЧрдП рд╕рдорд╛рдзрд╛рди рд╕реЗ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдзрдиреНрдпрд╡рд╛рдж!
@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 рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЗрд╕реЗ рдЕрджреГрд╢реНрдп рд▓реЗрдХрд┐рди рдЦреЛрдЬрдиреЗ рдпреЛрдЧреНрдп рдмрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдП?
рдХреБрдЫ рддрд░реАрдХреЗ рдЬрд┐рдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореИрдВ рд╕реЛрдЪ рд╕рдХрддрд╛ рд╣реВрдВ:
{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" },
]
});
рдЕрдкрд╡рд╛рдж: рдЬрдм рдЦреЛрдЬ рдпрд╛ рдЫрдБрдЯрд╛рдИ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдЙрд╕ рдЕрдкрд╡рд╛рдж рдХреЗ рд╕рд╛рде рдореЗрд░реА рдЧрд▓рддреА рдереА; рдореЗрд░реЗ рдкрд╛рд╕ рдореЗрд░реЗ рдлрд╝рд┐рд▓реНрдЯрд░ рдХреЙрд▓рдо рд╡рд┐рдзрд┐ рдХреЗ рднреАрддрд░ рдПрдХ рдбрдмрд▓ '$$' рдЪрд┐рд╣реНрди рдерд╛ред
рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕рдиреЗ рдореЗрд░реА рд╕реЙрд░реНрдЯрд┐рдВрдЧ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдирд╣реАрдВ рдХрд┐рдпрд╛ред рдореБрдЭреЗ рдЕрднреА рднреА рдЬрд╛рдирдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ:
@seewhy17 рдЖрдк рдЬрдЯрд┐рд▓ рдЫрдБрдЯрд╛рдИ рдХреЗ рд▓рд┐рдП рдСрд░реНрдбрд░ рдХреЙрд▓рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЖрдкрдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, fullname
рджреНрд╡рд╛рд░рд╛ рдСрд░реНрдбрд░ рдХрд░рдирд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред
@seewhy17 рдЖрдк рдЬрдЯрд┐рд▓ рдЫрдБрдЯрд╛рдИ рдХреЗ рд▓рд┐рдП рдСрд░реНрдбрд░ рдХреЙрд▓рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЖрдкрдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ,
fullname
рджреНрд╡рд╛рд░рд╛ рдСрд░реНрдбрд░ рдХрд░рдирд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред
рдЦреИрд░ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реБрдЖ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдлрд╝рд┐рд▓реНрдЯрд░ рдХреЙрд▓рдо рд╡рд┐рдзрд┐ рдореЙрдбрд▓ рдкрд░ рдПрдХ рдирд┐рд░реНрдзрд╛рд░рдХ рдХреЗ рд╕рд╛рде рд╕рдВрдШрд░реНрд╖ рдХрд░рддреА рд╣реИ рдЬреЛ рдореВрд▓ рд░реВрдк рд╕реЗ рд╡рд╣реА рдХрд╛рдо рдХрд░рддреА рд╣реИ ... рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ред
рдпрд╣ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдореБрдЭреЗ рдЬреЗрдПрд╕ рдореЗрдВ name: lastname
рдЬреЛрдбрд╝рдХрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд┐рд▓рд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЕрдВрддрд┐рдо рдирд╛рдо рд╕реЗ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдлрд╝рд┐рд▓реНрдЯрд░ рдХреЙрд▓рдо рд╡рд┐рдзрд┐ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╣реИ
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
@marioene , рдпрджрд┐ рдбреЗрдЯрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдк
addColumn
рдкрд░ рдЦреЛрдЬ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╛рдзрд╛рди рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЬреИрд╕реЗ рдЕрдкрдиреЗ рдЪрдпрди рдХрдерди рдкрд░ рдХреЙрд▓рдо рдЬреЛрдбрд╝реЗрдВредaddColumn
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред