Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 02.10.2020 16:17:11

Архив новостей

Привет всем!
Может кто-нибудь подсказать как написать архив новостей для вывода на сайте по году и месяцам.
Выводиться год, под ним месяцы этого года.
Перелапатил все не могу ничего подходящего найти.
По одному году или месяцу способ нашел решение, а по году с месяцем принадлежащим этому году не найду решение.

Этот способ выводит в каждом году все месяца:

Сервис провадер:

$view->with('monthArchive', Post::archivesMonth());

Модель, метод:

public static function archivesMonthYear()
    {
      return static::selectRaw('year(date) year, month(date) as month, monthname(date) as monthRU, count(*) as number')
        ->groupBy('year', 'month', 'monthRU')
        ->get();
    }

Вид:

<div class="accordion" id="accordionExample275">
                @foreach ($yearArchive as $key => $item)
                    <div class="card z-depth-0 bordered">
                        <div class="card-header d-flex justify-content-between align-items-center" id="heading{{$key}}">
                            <button class="btn btn-link" type="button" data-toggle="collapse"
                                    data-target="#collapse{{$key}}"
                                    aria-expanded="true" aria-controls="collapse{{$key}}">
                                {{$item->year}}
                            </button>
                            <span class="badge teal badge-pill font-small">{{$item->number}}</span>
                        </div>
                        <div id="collapse{{$key}}" class="collapse" aria-labelledby="heading{{$key}}"
                             data-parent="#accordionExample275">
                            <div class="card-body">
                                <ul class="list-group my-4">
                                        @forelse ($monthYearArchive as $item)
                                            <li class="list-group-item d-flex justify-content-between align-items-center">
                                                <a href="/archive_month_year/{{$item->month}}/{{$item->year}}"
                                                   class="elegant-darker-hover">
                                                    <span class="mb-0">{{$item->monthRU}}</span>
                                                </a>
                                                <span class="badge teal badge-pill font-small">{{$item->number}}</span>
                                            </li>
                                        @empty
                                            <li>Здесь пока ничего нет.</li>
                                        @endforelse
                                </ul>
                            </div>
                        </div>
                    </div>
                @endforeach
            </div>

Не в сети

Подвал раздела