lundi 8 avril 2019

How to remove duplicates entry in pagination using laravel

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