Laravel 分页器显示更多页面

Laravel paginator display more pages

我想做的是获取模型的不同值(日期),并为每个日期显示相应的数据。当我对不同的日期进行分页时,它工作正常,但在分页页面中我看到所有结果而不是不同的。这是我的功能:

public function showdaily($id) {

    $capacities = array();
    // DB::enableQueryLog();
    $capacity_daily = CapacityDaily::select('for_date')->where('capacity_id', '=', $id)->orderBy('for_date', 'asc')->distinct()->paginate(2);
    // dd(DB::getQueryLog());
    foreach($capacity_daily as $cap) {
        $get_capacity = CapacityDaily::where('capacity_id', '=', $id)->where('for_date', '=', $cap->for_date)->orderBy('for_date', 'asc')->distinct()->get();
        $capacities[] = array('for_date' => $cap->for_date, 'values' => $get_capacity, 'capacity' => Capacity::find($id)->first());
    }

    return view('admin.capacity.daily', compact('capacities', 'capacity_daily', 'id'));

}

我在 table 中总共有 4 个不同的日期和 96 行。因为我想每页只显示 2 个日期,所以它应该只显示一个额外的可用页面,但我没有显示 1-47。

我哪里做错了?

toSql() 方法将显示它是 运行 的查询,但我怀疑您需要在 for_date 上分组而不是使用 distinct

$capacity_daily = CapacityDaily::select('for_date')->where('capacity_id', '=', $id)->orderBy('for_date', 'asc')->groupBy('for_date')->paginate(2);