📅  最后修改于: 2023-12-03 15:17:14.708000             🧑  作者: Mango
在 Laravel 中,循环迭代分页是一个常见的任务,它允许你在用户界面中展示大量数据,并提供分页功能,使用户可以方便地浏览和导航到不同的页面。使用 Laravel 的内置分页功能,你可以轻松地实现这个目标。
下面是一个介绍如何在 Laravel 中使用循环迭代分页功能,并在 HTML 视图中显示分页链接的示例。
首先,你需要在控制器或模型中设置分页。这可以通过在查询构造器中使用 paginate
方法来完成。例如,假设你有一个 User
模型,并且想要在用户界面中展示用户列表,每页显示 10 个用户。你可以使用以下代码来设置分页:
use App\Models\User;
use Illuminate\Support\Facades\View;
class UserController extends Controller
{
public function index()
{
$users = User::paginate(10);
return View::make('users.index', compact('users'));
}
}
上面的代码将从数据库中检索用户数据,并使用 paginate
方法将其分页,每页显示 10 个用户。然后,它会将分页后的用户数据传递给 users.index
视图进行显示。
在视图中,你可以使用以下代码来处理分页数据并显示分页链接:
@foreach ($users as $user)
<!-- 显示用户信息 -->
@endforeach
{!! $users->links() !!}
上面的代码使用 foreach
循环迭代遍历每个用户,并显示用户信息。然后,它使用 links
方法显示分页链接。links
方法会生成一个带有适当链接的 HTML 分页视图。
你可以通过自定义分页视图来自定义分页链接的样式和布局。要做到这一点,你可以使用 links
方法的第一个参数来指定自定义分页视图的路径。例如,你可以创建一个名为 pagination.blade.php
的分页视图,并将其路径传递给 links
方法:
{!! $users->links('pagination') !!}
在自定义的分页视图中,你可以使用 Laravel 自带的分页视图模板,也可以根据自己的需求编写 HTML 和 CSS 代码。
这里提供了一个示例 pagination.blade.php
文件的代码:
@if ($paginator->hasPages())
<ul class="pagination">
{{-- Previous Page Link --}}
@if ($paginator->onFirstPage())
<li class="disabled" aria-disabled="true" aria-label="@lang('pagination.previous')">
<span aria-hidden="true">@lang('pagination.previous')</span>
</li>
@else
<li>
<a href="{{ $paginator->previousPageUrl() }}" rel="prev" aria-label="@lang('pagination.previous')">Previous</a>
</li>
@endif
{{-- Pagination Elements --}}
@foreach ($elements as $element)
{{-- "Three Dots" Separator --}}
@if (is_string($element))
<li class="disabled" aria-disabled="true"><span>{{ $element }}</span></li>
@endif
{{-- Array Of Links --}}
@if (is_array($element))
@foreach ($element as $page => $url)
@if ($page == $paginator->currentPage())
<li class="active" aria-current="page"><span>{{ $page }}</span></li>
@else
<li><a href="{{ $url }}">{{ $page }}</a></li>
@endif
@endforeach
@endif
@endforeach
{{-- Next Page Link --}}
@if ($paginator->hasMorePages())
<li>
<a href="{{ $paginator->nextPageUrl() }}" rel="next" aria-label="@lang('pagination.next')">Next</a>
</li>
@else
<li class="disabled" aria-disabled="true" aria-label="@lang('pagination.next')">
<span aria-hidden="true">@lang('pagination.next')</span>
</li>
@endif
</ul>
@endif
上述代码会生成一个基本的分页链接列表,你可以根据自己的需要对其进行样式和布局的调整。
以上是在 Laravel 中使用循环迭代分页功能并在 HTML 视图中显示分页链接的介绍。希望这篇文章能对你有所帮助!