I'm using LengthAwarePaginator. But the result in not correct. Some of the record is missing and some of the records is duplicate
I'm using Laravel 5.7 and Mongodb 3.4
my code
$upcoming_count=(count($total)>0)?$total[0]['count']:1;
$upcomingData=$this->upcoming($page,$perPage,$request,$upcomingArr,$statusArr,$upcoming_count,$pdf,$flag);
//pagination
$today = new LengthAwarePaginator($upcomingData,$upcoming_count,$perPage,$tpage,[
'path' => Paginator::resolveCurrentPath(),
'pageName' => 'page']);
//end
public function upcoming($page,$perPage,Request $request,$bookingArr,$status,$count,$pdf,$flag)
{
$upcoming_data= Booking::distinct()->raw(function($collection) use($page,$perPage,$request,$bookingArr,$status,$pdf,$count,$flag)
{
if ($status==1)
{
$findArr['date'] = $bookingArr ;
}
if ($request->input('status') != 0)
{
$statusd=($request->input('status')==1)?[1]:[2,3];
$findArr['booking_method'] =['$in'=>$statusd];
}
$findArr['date'] = $bookingArr ;
$sortOrder = ['date'=> -1];
$skip= ['$skip' => ($page - 1) * $perPage];
$limit= ['$limit' => $perPage];
return $collection->aggregate([
['$lookup' => ['from' => 'turfs_collection', 'localField' => 'turf_id', 'foreignField' => '_id', 'as' => 'turf_data']],
['$lookup' => ['from' => 'sports_items_collection', 'localField' => 'slot_id', 'foreignField' => 'slot_divisions.div_id', 'as' => 'sports_data']],
['$lookup' => ['from' => 'registered_users_collection', 'localField' => 'user_id', 'foreignField' => '_id', 'as' => 'user_data']],
['$match' => $findArr],
['$sort' => $sortOrder],
$skip,
$limit,
]);
});
return $upcoming_data;
}
remove sort it works fine .how can i fix it?
via Chebli Mohamed
Aucun commentaire:
Enregistrer un commentaire