我跟随杰弗里的方式从零开始在拉拉维尔8惊人的系列,但我有一个麻烦的分页。在索引页面中,我们让我们的最新文章有一个特定的样式,然后前两个帖子以不同的样式出现,其余的文章在不同的样式中出现。问题是,这些样式正与我们一起传承到page2、3和...etc。
我想让这只张贴在page1或主页,当我转到第2页,我应该有一个默认的样式为所有的帖子。
这是索引
<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 1,如果不这样做,就这样做,但是它似乎不起作用。
这是我的页码:
public function index()
{
return view('posts.index', [
'posts' => Post::latest()->filter(request(['search', 'category', 'author']))->paginate(6)->withQueryString(),
]);
}谢谢
发布于 2022-02-22 10:59:41
您可以在分页器上使用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>您可以从Laravel8.x文档:https://laravel.com/docs/8.x/pagination#paginator-instance-methods中检查分页器方法
https://stackoverflow.com/questions/71219942
复制相似问题