Laravel Yajra Datatable Service, использующий объект Array
Я хотел бы использовать массив объектов вместо запроса для моей таблицы данных, и он не работает, потому что он не из коллекции запросов.
мой массив так же, как это
public function query(){
$santri = DataSantri::select('data_santri.*','id_vc')
->join('vc','data_santri.id_user','=','vc.id_user')
->whereIn('status_kegiatan',['ziyadah','mutqin','tahsin'])
->get();
foreach($santri as $row){
$pl = PaymentList::where('is_active',1)
->where('angkatan',$row->angkatan)
->where('payment_list.payment_time','bulanan')
->get();
$totalPl = DB::table('payment_list')
->where('is_active',1)
->where('angkatan',$row->angkatan)
->where('payment_list.payment_time','bulanan')
->sum('payment_price');
$pa = PaymentAddon::where('nis',$row->nis)->get();
$totalPa = DB::table('payment_addon')
->where('nis',$row->nis)
->sum('payment_price');
$data[] = array(
'nis' => $row->nis,
'id_vc' => $row->id_vc,
'nama_lengkap_santri' => $row->nama_lengkap_santri,
'jk' => $row->jk_santri,
'data_pembayaran_bulanan' => $pl,
'data_pembayaran_tambahan' => $pa,
'total' => $totalPl + $totalPa
);
}
$collect = collect($data);
return $this->applyScopes($collect);
}
это возвращает ошибку, как это
Method Illuminate\Support\Collection::getQuery does not exist.
как я могу решить эту ошибку? благодарю вас
1 ответ
Не могли бы вы опубликовать вопрос. подробно означает, как вы используете Yajra DataTable и все.
Datatable принимает данные в формате объекта, а вы предоставляете в формате массива, поэтому, пожалуйста, измените его на объект.
public function query(){
$santri = DataSantri::select('data_santri.*','id_vc')
->join('vc','data_santri.id_user','=','vc.id_user')
->whereIn('status_kegiatan',['ziyadah','mutqin','tahsin'])
->get();
$data = []; // initialize empty array
foreach($santri as $row){
$pl = PaymentList::where('is_active',1)
->where('angkatan',$row->angkatan)
->where('payment_list.payment_time','bulanan')
->get();
$totalPl = DB::table('payment_list')
->where('is_active',1)
->where('angkatan',$row->angkatan)
->where('payment_list.payment_time','bulanan')
->sum('payment_price');
$pa = PaymentAddon::where('nis',$row->nis)->get();
$totalPa = DB::table('payment_addon')
->where('nis',$row->nis)
->sum('payment_price');
$data[] = (object) array(
'nis' => $row->nis,
'id_vc' => $row->id_vc,
'nama_lengkap_santri' => $row->nama_lengkap_santri,
'jk' => $row->jk_santri,
'data_pembayaran_bulanan' => $pl,
'data_pembayaran_tambahan' => $pa,
'total' => $totalPl + $totalPa
);
}
return $this->applyScopes($data);
}
Надеюсь, это поможет. Если это не сработает, верните меня, и я расскажу вам лучший способ использования данных с использованием Yajra.