seblhaire / bootstrappaginator
Laravel 生成分页的库
Requires
- php: >=8.2
- illuminate/http: ^11.0
README
一个使用 Bootstrap 4 或 5 CSS 框架生成分页的 Laravel 库。
此库提供了两种不同的分页器
两个分页器都可以在同一个页面中使用。
演示站点可在 此处 获得。
安装
-
composer require seblhaire/bootstrappaginator
-
可选:使用
npm install bootstrap
安装 Bootstrap -
Composer 会自动将包与 Laravel 链接。但您仍然可以明确地在
config/app.php
中添加 provider 和 facade
'providers' => [ ... Seblhaire\BootstrapPaginator\BootstrapPaginatorServiceProvider::class, ... ], 'aliases' => [ ... 'BootstrapPaginator' => Seblhaire\BootstrapPaginator\BootstrapPaginator::class, ]
- 发布包(可选)。
$ php artisan vendor:publish
- 将翻译添加到 Laravel 现有的
pagination.php
翻译文件中,位于目录resources/lang/en/
。只需添加键
'all' => 'All',
用法
在控制器头部声明 Facade
use Seblhaire\BootstrapPaginator\BootstrapPaginator;
您的路由必须在最后一段包含页面参数
Route::get('/issues/{page?}', 'MainController@issues')->name('issues');
例如:您可以有一个路由 https://test.site/issues/9
,路由 https://test.site/issues
应显示第一页。控制器方法可以声明如下
function issues($page = 1){ ...}
如果您包含字母分页器,最后一段将是字母初始
Route::get('/authors/{initial?}', 'MainController@authors')->name('authors');
例如:您可以有一个路由 https://test.site/authors/D
会显示所有以 D 开头的作者。 https://test.site/authors
将显示所有项目。控制器方法可以声明如下
public function authors($initial = config('bootstrappaginator.valueforall')){ ... }
您可以在一个页面上结合使用两种分页器。在这种情况下,初始字母将在倒数第二个位置,页面参数在最后一个位置
Route::get('/authors/{initial?}/{page?}', 'MainController@authors')->name('authors');
在这种情况下 https://test.site/authors
显示所有项目的第一页。 https://test.site/authors/all/3
将显示所有项目的第三页。 https://test.site/authors/D
将显示以 D 开头的项目的第一页。而 https://test.site/authors/D/3
将显示以 D 开头的项目的第三页。使用默认参数初始化您的函数并在代码中使用它们
public function authors($initial = null, $page =1){
....
$initial = is_null($initial) ? config('bootstrappaginator.valueforall') : $initial;
$route = 'authors';
$options = ['nbpages' => 4, 'params' => ['initial' => $initial]];
$optionalpha = ['type' => 'alpha'];
$paginator = BootstrapPaginator::init($page, $route, $options);
$paginatoralpha = BootstrapPaginator::init($initiale, $route, $optionalpha);
....
return view('pages.authors', [
...
'paginator' => $paginator,
'paginatoralpha' => $paginatoralpha,
...
]);
}
在这个例子中,数字分页器将在链接 URL 中包含当前初始字母。字母分页器的链接将引导网页用户到包含初始字母的第一页。然后,在视图中,按如下方式打印您的分页器
{!! $paginator->render() !!}
或简单地
{!! $paginator !!}
参数
$page
:当前页码或初始字母;$route
:当前路由 ID;$options
:要替换配置文件中默认值的值的数组type
:要么是numeric
要么是alpha
;params
:默认[]
。由route()
助手使用的参数数组,用于在分页器中生成 URL。请参见上面的示例;getparams
:默认[]
。将被添加到路径中的 GET 参数。例如:['search' => 'dummy', 'type' => 'global']
将被转换为url?search=dummy&type=global
- 数字分页器特定参数
pageparam
: 默认page
。路由中页面参数的ID。nbpages
:默认 1。将要显示的页面数量。withoutdots
:默认false
。显示所有页面,不使用点号分隔空白区域;max_pages_without_dots
:默认9
。不使用点号分隔的最大页面数。items_before_after_current
:默认2
。显示当前页面项前后要显示的页面数。
- alpha 分页器特定参数
initialparam
:默认initial
。路由中初始参数的ID;valueforall
:默认all
。用于显示所有项目而不是以特定参数开始的项目所用的值。
class
:默认pagination justify-content-center
。包围分页的<ul>
的类。itemclass
:默认page-item
。<li>
元素的类。linkclass
:默认page-link
。<a>
元素的类。activelink
:默认active
。添加到当前元素的类。disabledlink
:默认disabled
。禁用按钮的类。srcurrent
默认:<span class="sr-only">(current)</span>
- 添加到当前元素用于语音辅助工具的元素。previousbuttoncontent
:默认<span aria-hidden=\"true\">«</span>
。上一页按钮的内容。nextbuttoncontent
:默认<span aria-hidden=\"true\">»</span>
。下一页按钮的内容。
配置文件
配置文件可在包目录 vendor\seblhaire/bootstrappaginator 中找到,或者在你发布配置的 app 配置目录中。
config('bootstrappaginator')
有问题?有贡献?
请随时向作者发送功能请求或合并请求,或简单地提问。