php Laravel yajra表分页服务器端,点击第二页后无法点击第三页

ogsagwnx  于 2023-03-21  发布在  PHP
关注(0)|答案(1)|浏览(567)

所以基本上,这是第一页(可能看到第一张图片),总共有8个数据,每页会显示2个数据。First Picture
所以当我点击第二页的时候,第三页就会丢失,无法点击。可以看到第二张图片(This is the second picture at the second page, but as u can see there's no button for me to click the third page
因此,正如你在下面看到的,我尝试添加Datatables并在代码中放入-〉setOffset($start)。但它不起作用。请任何人帮助我。

public function reservationListing(Request $request)
    {

        $req = $request->all();

        $query = EventReservation::selectRaw("reservation_date,event_reservations.outlet_id,event_reservations.event_id,SUM(event_reservations.total_adults) as ttl_adult,
        SUM(event_reservations.total_kids) as ttl_kid,SUM(event_reservations.total_adults + event_reservations.total_kids) as ttl_pax,
        SUM(CASE WHEN event_reservations.total_attendees is NULL then 0 Else event_reservations.total_attendees End) as ttl_attended,
        SUM(CASE WHEN payment_status = 'pending' THEN 1 ELSE 0 END) as ttl_pending,SUM(CASE WHEN payment_status = 'paid' THEN 1 ELSE 0 END) as ttl_paid,
        events.name as event_name,outlets.name as outlet_name")
            ->leftjoin("events", "events.id", "=", "event_reservations.event_id")
            ->leftjoin("outlets", "outlets.id", "=", "event_reservations.outlet_id")
            ->groupby('reservation_date')
            ->groupby('outlet_id')
            ->groupby('event_id');

        if (!empty($req['date_to']) && !empty($req['date_to'])) {
            $query->whereRaw("DATE(reservation_date) BETWEEN '".$req['date_from']."' AND '".$req['date_to']."'");
        }

        if (!empty($req['outlet_id'])) {
            $query->where("event_reservations.outlet_id", $req['outlet_id']);
        }

        if (!empty($req['event_id'])) {
            $query->where("event_reservations.event_id", $req['event_id']);
        }

        if (!empty($req['start'])) {
            $query->skip($req['start']);

        }

        if (!empty($req['start'])) {
            $query->take($req['length']);
        }
        $query->orderBy("reservation_date");
        $reservationList = $query->get();

        $start = ($request->start) ? $request->start : 0;

        return Datatables::of($reservationList)
        ->setOffset($start)
        ->addIndexColumn()  
            ->make(true);
    }
x6492ojm

x6492ojm1#

我已经得到了答案,我只是修改了一些代码并删除了一些代码:

if (!empty($req['start'])) {
        $query->skip($req['start']);

    }

    if (!empty($req['start'])) {
        $query->take($req['length']);
    }

这是该函数的完整代码:

public function reservationListing(Request $request)
{

    $req = $request->all();

    $query = EventReservation::selectRaw("reservation_date,event_reservations.outlet_id,event_reservations.event_id,SUM(event_reservations.total_adults) as ttl_adult,
    SUM(event_reservations.total_kids) as ttl_kid,SUM(event_reservations.total_adults + event_reservations.total_kids) as ttl_pax,
    SUM(CASE WHEN event_reservations.total_attendees is NULL then 0 Else event_reservations.total_attendees End) as ttl_attended,
    SUM(CASE WHEN payment_status = 'pending' THEN 1 ELSE 0 END) as ttl_pending,SUM(CASE WHEN payment_status = 'paid' THEN 1 ELSE 0 END) as ttl_paid,
    events.name as event_name,outlets.name as outlet_name")
        ->leftjoin("events", "events.id", "=", "event_reservations.event_id")
        ->leftjoin("outlets", "outlets.id", "=", "event_reservations.outlet_id")
        ->groupby('reservation_date')
        ->groupby('outlet_id')
        ->groupby('event_id');

    if (!empty($req['date_to']) && !empty($req['date_to'])) {
        $query->whereRaw("DATE(reservation_date) BETWEEN '".$req['date_from']."' AND '".$req['date_to']."'");
    }

    if (!empty($req['outlet_id'])) {
        $query->where("event_reservations.outlet_id", $req['outlet_id']);
    }

    if (!empty($req['event_id'])) {
        $query->where("event_reservations.event_id", $req['event_id']);
    }

    $query->orderBy("reservation_date");

    $reservationList = $query->get();

    return Datatables::of($reservationList)
    ->make(true);
}

相关问题