带有原始查询的 Laravel 分页

时间:2021-04-15 09:36:19

标签: pagination laravel-8

当我把分页(50);它显示 WhereNull 不存在。然后我去把 whereNull 变成 ctrl + /

并显示下一行是 OrderBy 不存在。我真的不知道问题出在哪里......因为我想在不使用来自 DB::raw 查询的数据表的情况下进行分页......

 public function searchParticipation(Request $request){

    ini_set('memory_limit','2G');

    if ($request->method() != 'POST') {
        return redirect()->route('ticketparticipation.view');
    }

    $replaceStartDate = $this->remove_string($request['start_date']);
    $replaceEndDate = $this->remove_string($request['end_date']);

    $valStartDate = strtotime($replaceStartDate) + (60*60*8);
    $valEndDate = strtotime($replaceEndDate) + (60*60*24) + (60*60*8) - 1;

    $event_id = $request['event_id'];
    $category_id = $request['category_id'];
    $ticket_number = $request['ticket_number'];
    $full_name = $request['full_name'];

    $dataEvent = array(
        'event_id' => $event_id,
        'category_id' => $category_id,
        'ticket_number' => $ticket_number
    );

    $superadmins = User::UserOrganizer()->get();

    $user_id = Session::get('user_id');
    $roles = Session::get('roles');

    if(empty(Session::get('roles'))){
        auth()->logout();
        return redirect('/admin/logout2');
    }

    $eventx = Event::query();

    $eventx = $eventx->select('id', 'name');

    if ($roles == 'Organizer-Admin') {
        $eventx->Where('admin_id','=',$user_id);
        $event = $eventx->Where('is_deleted','=','0')->get(); //->Where('is_active','=','1')
    }elseif($roles == 'Organizer-Project'){
        $eventx->Where('project_manager_id','=',$user_id);
        $event = $eventx->Where('is_deleted','=','0')->get(); //->Where('is_active','=','1')
    }elseif($roles == 'Organizer-Super-Admin'){
        $eventx->Where('superadmin_id','=',$user_id);
        $event = $eventx->Where('is_deleted','=','0')->get(); //->Where('is_active','=','1')
    }elseif($roles == 'Superadmin-Organizer'){
        $event = $eventx->Where('is_deleted','=','0')->get(); //->Where('is_active','=','1')
    }


    $data = array(
        'user_id' => $user_id,
        'roles' => $roles,
        'date_start' => $request['start_date'],
        'date_end' => $request['end_date']
    );

    if($data['roles'] == 'Organizer-Admin'){
        $field = "event.admin_id";
    }elseif($data['roles'] == 'Organizer-Project'){
        $field = "event.project_manager_id";
    }else{
        $field = "event.superadmin_id";
    }

    $tCount = EventParticipation::Select('event_participation.id')
        ->join('event', 'event.id', '=', 'event_participation.event_id')
        ->join('categories', 'categories.id', 'event_participation.run_id');
    if($event_id != ''){
        $tCount = $tCount->Where("event_participation.event_id", "=", $event_id);
    }
    if($category_id != ''){
        $tCount = $tCount->Where("event_participation.run_id", "=", $category_id);
    }
    if($ticket_number != ''){
        $tCount = $tCount->Where(DB::raw('concat(event.ticket_number_prepend,"",event_participation.queue_id)') , '=' , $ticket_number);
    }
    if($full_name != ''){
        $tCount = $tCount->Where("event_participation.full_name", 'LIKE' , '%'.$full_name.'%');
    }

    $tCount = $tCount->Where("event_participation.acceptance_date", "<>", 0)
        ->Where("event_participation.is_participating", "=", 1)
        ->Where("event_participation.is_deleted", "=", 0)
        ->OrderBy('event_participation.creation_date','ASC')
        ->get();


    $eventDetail = Event::Select('name', 'registration_end', 'type','primary_currency')->Where('id', '=', $event_id)->first();

    if($tCount->count() < 10000) {

        $ticketParticipation = EventParticipation::Select(
            DB::raw("if(epu.full_name is not null, epu.full_name, event_participation.full_name) as full_name"),
            DB::raw("if(epu.address is not null, epu.address, event_participation.address) as address"),
            DB::raw("if(epu.city is not null, epu.city, event_participation.city) as city"),
            DB::raw("if(epu.postcode is not null, epu.postcode, event_participation.postcode) as postcode"),
            DB::raw("if(epu.state is not null, epu.state, event_participation.state) as state"),
            DB::raw("if(epu.country is not null, epu.country, event_participation.country) as country"),
            DB::raw("if(epu.additional_info is not null, epu.additional_info, event_participation.additional_info) as additional_info"),
            'event_participation.id', 'event_participation.delivery_company', 'event_participation.tracking_number', 'event_participation.run_id','event_participation.event_id', 'event_participation.local_transaction_number', 'event_participation.user_id',
            'event_participation.nric_passport', 'event_participation.gender', 'event_participation.tshirt_size', 'event_participation.nationality',
            'event_participation.email', 'event_participation.contact_number', 'event_participation.emergency_contact_name', 'event_participation.emergency_contact_number', 'event_participation.medical_conditions', 'event_participation.amount',
            'event_participation.after_discount', 'event_participation.discount_id', 'event_participation.payment_type', 'event_participation.remarks',
            'event.name AS eventname', 'event.ticket_number_prepend', 'categories.title AS run_title', 'event_participation.date_of_birth', 'event_participation.creation_date', 'event_participation.acceptance_date',
            DB::raw("FROM_UNIXTIME(`event_participation`.`creation_date`,\"%d-%m-%Y %h:%i:%s %p\") AS `register_date`"),
            DB::raw("CONCAT(event.`ticket_number_prepend`, '', event_participation.`queue_id`) AS `ticket_number`"),
            'virtual_parcel_shipping_order.awb_id','virtual_parcel_shipping_order.awb_url','virtual_parcel_shipping_order.tracking_url','virtual_parcel_shipping_order.shipping_status',
            'virtual_parcel_shipping_order.pick_up_date','virtual_parcel_shipping_order.parcel_content',
            'virtual_parcel_shipping_order.status','virtual_parcel_shipping_order.response')//DB::raw("FROM_UNIXTIME(`event_participation`.`date_of_birth`,\"%d-%m-%Y\") AS `dob`"),
        ->join('event', 'event.id', '=', 'event_participation.event_id')
            ->join('categories', 'categories.id', 'event_participation.run_id')
            ->leftjoin('event_participation_report_status','participation_id','event_participation.id')
             ->leftjoin('virtual_parcel_shipping_order','participant_id','event_participation.id')
             ->leftjoin('event_participation_utf8 as epu', 'event_participation.id', 'epu.participation_id')->paginate(50);  <<<<<<<< got problem when I add in paginate(50)
        if($event_id != ''){
            $ticketParticipation = $ticketParticipation->Where("event_participation.event_id", "=", $event_id);
        }
        if($category_id != ''){
            $ticketParticipation = $ticketParticipation->Where("event_participation.run_id", "=", $category_id);
        }
        if($ticket_number != ''){
            $ticketParticipation = $ticketParticipation->Where(DB::raw('concat(event.ticket_number_prepend,"",event_participation.queue_id)') , '=' , $ticket_number);
        }
        if($full_name != ''){
            $ticketParticipation = $ticketParticipation->Where("event_participation.full_name", 'LIKE' , '%'.$full_name.'%');
        }

        $ticketParticipation = $ticketParticipation->Where("event_participation.acceptance_date", "<>", 0)
            ->Where("event_participation.is_participating", "=", 1)
            ->Where("event_participation.is_deleted", "=", 0)
            ->WhereNull("event_participation_report_status.participation_id")
            ->OrderBy('event_participation.queue_id', 'DESC')
            ->get()->chunk(1000);

        $eventDiscount = EventDiscountCode::Select('id', 'event_id', 'amount', 'code')->Where('event_id', $event_id)->get();
        
        return view('admin.organizer.participant_summary',['ticketParticipation'=>$ticketParticipation], compact('event', 'ticketParticipation', 'eventDiscount', 'dataEvent', 'eventDetail'));
    }else{

        return view('admin.organizer.participant_summaryv2', compact('event','data', 'dataEvent', 'eventDetail'));

    }

}

我真的不确定问题出在哪里.....

0 个答案:

没有答案
相关问题