如何在分页中排除 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
我在 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