Anonymous
Таблица данных laravel требует много времени для загрузки только двух записей
Сообщение
Anonymous » 17 ноя 2024, 01:32
У меня есть следующий код только с двумя записями данных
мой контроллер:
Код: Выделить всё
if (request()->ajax()){
$spareparts = Sparepart::select(DB::raw('DATE_FORMAT(spareparts.created_at,"%d-%m-%Y") as order_date'),
DB::raw("CONCAT(users.address, ', ', regencies.name, ', ', districts.name, ', ', provinces.name) as address"),
DB::raw("CONCAT(shipping_addresses.full_address, ', ', r.name, ', ', d.name, ', ', p.name) as shipping_address"),
DB::raw("GROUP_CONCAT(distinct sp.nama order by sp.id SEPARATOR ', ') as nama_sparepart"),
DB::raw("GROUP_CONCAT(distinct sp.model order by sp.id SEPARATOR ', ') as model"),
DB::raw("GROUP_CONCAT(distinct kategori_produks.nama SEPARATOR ', ') as nama"),
DB::raw("GROUP_CONCAT(distinct sp.quantity order by sp.id SEPARATOR ', ') as quantity"),
DB::raw("GROUP_CONCAT(distinct sp.foto SEPARATOR ', ') as foto"),
'spareparts.id', 'users.name', 'users.no_hp')
->leftJoin('sparepart_products as sp', 'spareparts.id', '=', 'sp.sparepart_id')
->leftJoin('users', 'spareparts.email', '=', 'users.email')
->leftJoin('shipping_addresses', 'users.email', '=', 'shipping_addresses.email')
->leftJoin('kategori_produks', 'sp.kategori_id', '=', 'kategori_produks.id')
->leftJoin('provinces', 'users.provinsi', '=', 'provinces.id')
->leftJoin('regencies', 'users.kota', '=', 'regencies.id')
->leftJoin('districts', 'users.kecamatan', '=', 'districts.id')
->leftJoin('provinces as p', 'shipping_addresses.provinsi', '=', 'p.id')
->leftJoin('regencies as r', 'shipping_addresses.kota', '=', 'r.id')
->leftJoin('districts as d', 'shipping_addresses.kecamatan', '=', 'd.id')
->where('spareparts.is_deleted', 0)
->groupBy('spareparts.id', 'shipping_addresses.full_address','r.name', 'd.name', 'p.name',
'regencies.name', 'districts.name', 'provinces.name')
->distinct();
if($request->filled('from_date') && $request->filled('to_date')) {
$spareparts = $spareparts->whereDate('spareparts.created_at', '>=', $request->from_date)->whereDate('spareparts.created_at', 'Edit[/url]';
}
})->make();
}
мое мнение:
Код: Выделить всё
Order Date
Name
Phone Number
Address
Shipping Address
{{-- Sparepart Name
Quantity
Category
Model
Sparepart Foto --}}
Action
var table_service = $('#tbl_sparepart').DataTable({
processing: true,
serverSide: true,
layout: {
topStart: {
'pageLength': 10,
buttons: [{
extend: 'csv',
text: 'Export Data',
filename: 'sparepart'
}]
}
},
scrollX: true,
ajax: {
url: '/sparepart-request',
data: function(d) {
d.from_date = $('input[name="daterange"]').data('daterangepicker').startDate
.format('YYYY-MM-DD');
d.to_date = $('input[name="daterange"]').data('daterangepicker').endDate.format(
'YYYY-MM-DD');
d.category_type = $('#category_type').val();
}
},
columns: [{
data: 'order_date',
name: 'order_date',
searchable: false
},
{
data: 'name',
name: 'users.name'
},
{
data: 'no_hp',
name: 'users.no_hp'
},
{
data: 'address',
name: 'users.address'
},
{
data: 'shipping_address',
name: 'shipping_address',
searchable: false
},
{
data: 'nama_sparepart',
name: 'sp.nama'
},
{
data: 'quantity',
name: 'sp.quantity'
},
{
data: 'nama',
name: 'kategori_produks.nama'
},
{
data: 'model',
name: 'sp.model'
},
{
data: 'foto',
name: 'sp.foto'
},
{
data: 'action',
name: 'action',
orderable: false,
searchable: false
},
]
});
и почему-то загрузка 2 записей данных занимает 10-30 секунд, но когда я удаляю group_concat из моего запроса, это ускоряет время загрузки, но я не могу удалить group_concat, так как он мне нужен в моем запросе.
Буду признателен за любую помощь, заранее спасибо.
Подробнее здесь:
https://stackoverflow.com/questions/791 ... wo-records
1731796366
Anonymous
У меня есть следующий код только с двумя записями данных мой контроллер: [code] if (request()->ajax()){ $spareparts = Sparepart::select(DB::raw('DATE_FORMAT(spareparts.created_at,"%d-%m-%Y") as order_date'), DB::raw("CONCAT(users.address, ', ', regencies.name, ', ', districts.name, ', ', provinces.name) as address"), DB::raw("CONCAT(shipping_addresses.full_address, ', ', r.name, ', ', d.name, ', ', p.name) as shipping_address"), DB::raw("GROUP_CONCAT(distinct sp.nama order by sp.id SEPARATOR ', ') as nama_sparepart"), DB::raw("GROUP_CONCAT(distinct sp.model order by sp.id SEPARATOR ', ') as model"), DB::raw("GROUP_CONCAT(distinct kategori_produks.nama SEPARATOR ', ') as nama"), DB::raw("GROUP_CONCAT(distinct sp.quantity order by sp.id SEPARATOR ', ') as quantity"), DB::raw("GROUP_CONCAT(distinct sp.foto SEPARATOR ', ') as foto"), 'spareparts.id', 'users.name', 'users.no_hp') ->leftJoin('sparepart_products as sp', 'spareparts.id', '=', 'sp.sparepart_id') ->leftJoin('users', 'spareparts.email', '=', 'users.email') ->leftJoin('shipping_addresses', 'users.email', '=', 'shipping_addresses.email') ->leftJoin('kategori_produks', 'sp.kategori_id', '=', 'kategori_produks.id') ->leftJoin('provinces', 'users.provinsi', '=', 'provinces.id') ->leftJoin('regencies', 'users.kota', '=', 'regencies.id') ->leftJoin('districts', 'users.kecamatan', '=', 'districts.id') ->leftJoin('provinces as p', 'shipping_addresses.provinsi', '=', 'p.id') ->leftJoin('regencies as r', 'shipping_addresses.kota', '=', 'r.id') ->leftJoin('districts as d', 'shipping_addresses.kecamatan', '=', 'd.id') ->where('spareparts.is_deleted', 0) ->groupBy('spareparts.id', 'shipping_addresses.full_address','r.name', 'd.name', 'p.name', 'regencies.name', 'districts.name', 'provinces.name') ->distinct(); if($request->filled('from_date') && $request->filled('to_date')) { $spareparts = $spareparts->whereDate('spareparts.created_at', '>=', $request->from_date)->whereDate('spareparts.created_at', 'Edit[/url]'; } })->make(); } [/code] мое мнение: [code] Order Date Name Phone Number Address Shipping Address {{-- Sparepart Name Quantity Category Model Sparepart Foto --}} Action var table_service = $('#tbl_sparepart').DataTable({ processing: true, serverSide: true, layout: { topStart: { 'pageLength': 10, buttons: [{ extend: 'csv', text: 'Export Data', filename: 'sparepart' }] } }, scrollX: true, ajax: { url: '/sparepart-request', data: function(d) { d.from_date = $('input[name="daterange"]').data('daterangepicker').startDate .format('YYYY-MM-DD'); d.to_date = $('input[name="daterange"]').data('daterangepicker').endDate.format( 'YYYY-MM-DD'); d.category_type = $('#category_type').val(); } }, columns: [{ data: 'order_date', name: 'order_date', searchable: false }, { data: 'name', name: 'users.name' }, { data: 'no_hp', name: 'users.no_hp' }, { data: 'address', name: 'users.address' }, { data: 'shipping_address', name: 'shipping_address', searchable: false }, { data: 'nama_sparepart', name: 'sp.nama' }, { data: 'quantity', name: 'sp.quantity' }, { data: 'nama', name: 'kategori_produks.nama' }, { data: 'model', name: 'sp.model' }, { data: 'foto', name: 'sp.foto' }, { data: 'action', name: 'action', orderable: false, searchable: false }, ] }); [/code] и почему-то загрузка 2 записей данных занимает 10-30 секунд, но когда я удаляю group_concat из моего запроса, это ускоряет время загрузки, но я не могу удалить group_concat, так как он мне нужен в моем запросе. Буду признателен за любую помощь, заранее спасибо. Подробнее здесь: [url]https://stackoverflow.com/questions/79192285/laravel-datatable-takes-long-time-to-load-with-only-two-records[/url]