如何在分页中排除 page2 中的某些样式

How to exclude certain styling in page2 in pagination

我在 Laravel 8 中关注了 Jeffery Way 从零开始的精彩系列,但我在分页时遇到了问题。在索引页中,我们正在使最新的 post 具有特定的样式,然后前 2 个 post 具有不同的样式,然后其余的 post 具有不同的样式。问题是这些样式会影响到 page2 和 3 以及 ...etc

我只想将此设为第 1 页或主页中的 post,当我转到第 2 页时,我应该为所有 post 设置一个默认样式。

这是索引

<x-bloglayout>

    @include('posts.__header')

    @if ($posts->count())
        <x-featuredCard :post="$posts[0]" />

        @if ($posts->count() > 1)

            <div class="lg:grid lg:grid-cols-2">

                <x-postCard :post="$posts[1]" />
                <x-postCard :post="$posts[2]" />

            </div>

            <div class="lg:grid lg:grid-cols-3">
                @foreach ($posts->skip(3) as $post)
                    <x-postCard :post="$post" />
                @endforeach
            </div>

        @endif

        {{ $posts->links() }}

    @else
        <p class="text-center">No posts matches your search, please check back later</p>
    @endif



</x-bloglayout>

我尝试使用 if 指令来说明路由是否在家或 ?/page1 如果不是则执行此操作但它似乎不起作用。

这是我的分页:

    public function index()
    {
        return view('posts.index', [
            'posts' => Post::latest()->filter(request(['search', 'category', 'author']))->paginate(6)->withQueryString(),
        ]);
    }

谢谢

您可以在分页器上使用 currentPage() 方法并检查它是否在第一页上。可能不是最奇特的方式,但这是一个例子:

<x-bloglayout>

    @include('posts.__header')

    @if ($posts->count())
    <x-featuredCard :post="$posts[0]" />

    @if ($posts->count() > 1)

    @if($posts->currentPage() == 1)

    <div class="lg:grid lg:grid-cols-2">

        <x-postCard :post="$posts[1]" />
        <x-postCard :post="$posts[2]" />

    </div>

    @endif

    <div class="lg:grid lg:grid-cols-3">
        @foreach ($posts->skip($posts->currentPage() == 1 ? 3 : 0) as $post)
        <x-postCard :post="$post" />
        @endforeach
    </div>

    @endif

    {{ $posts->links() }}

    @else
    <p class="text-center">No posts matches your search, please check back later</p>
    @endif

</x-bloglayout>

您可以从 Laravel 8.x 文档中检查分页器方法:https://laravel.com/docs/8.x/pagination#paginator-instance-methods