Laravel - 使用年数作为分页数字

时间:2017-05-30 12:27:49

标签: php laravel pagination laravel-5.1

我在Laravel 5.1.45(LTS)上。一个俱乐部有很多活动。

我想显示一个页面,列出当前年份的所有事件(默认页面)。在页面的底部,我想要前一页和下一年的链接(每页一个链接,每年一页)。

这是我的PublicController:

public function index()
{
    $events = Event::with('Club')
        ->orderBy('date', 'desc')
        ->get()
        ->groupBy(function($date) {
            return Carbon::parse($date->date)->format('Y');
        });

    $currentPage = Paginator::resolveCurrentPage() - 1;
    $perPage = 1;
    $currentPageSearchResults = $events->slice($currentPage * $perPage, $perPage)->all();
    $paginator = new LengthAwarePaginator($currentPageSearchResults, count($events), $perPage);

    return view('events.index', ['events' => $paginator]);
}

这是我的观点:

@foreach ($events as $year)
    @foreach ($year as $object)
            {{ $object->date }}
            {{ ... }}
    @endforeach
@endforeach

{!! $events->setPath('/events/events')->appends(Request::except('page'))->render() !!}

这是有效的;我每年都会在一页和一页中获得一年中的所有活动。

但是,页面底部的链接当然是2016年活动的“?page = 2”形式。

我想要的是'?page = YEAR'形式的链接。并且,如果已经列出了明年的事件,那么如果没有向URL添加任何参数,则在页面上登陆当前年份的事件。

这甚至可能吗?

0 个答案:

没有答案