sjaakp / yii2-alphapager
在Yii2中关于首字母的页面数据。
Requires
- yiisoft/yii2: *
This package is auto-updated.
Last update: 2024-08-29 12:19:44 UTC
README
Yii2 Alphapager可以通过例如GridView
或ListView
实现字母分页。
只需使用sjaakp\alphapager\ActiveDataProvider
代替您的正常yii\dataActiveDataProvider
,并在您的GridView
前面放置一个AlphaPager
小部件,然后您就可以运行了。
同样,使用sjaakp\alphapager\ArrayDataProvider
。
字母分页与正常分页兼容。您可以将它们一起使用。
Yii2 Alphapager的演示在这里:http://www.sjaakpriester.nl/software/alphapager。
重要提示
抱歉地说,Yii2 Alphapager的ActiveDataProvider仅经过MySQL和MariaDB数据库的验证。它也应该与SQLite和Cubrid一起工作,但这尚未经过测试。
与Yii哲学不同,Yii2 Alphapager对数据库不透明。据推测,ActiveDataProvider可以与Oracle、Postgres和MSSQL一起工作。有关详细信息,请参阅ActiveDataProvider.php中靠近$regex的注释。如果您能提供有关使用其他数据库的更多信息,我将非常乐意听到。
安装
安装Yii2 Alphapager的首选方式是通过Composer。将以下内容添加到您的composer.json
文件的require部分
"sjaakp/yii2-alphapager": "*"
或者运行
composer require sjaakp/yii2-alphapager "*"
您可以通过下载ZIP格式的源代码来手动安装Yii2 Alphapager。
使用
使用Yii2 Alphapager非常简单。一个最小使用场景可能如下所示。在PersonController.php
中,我们可能会有如下内容:
<?php
use sjaakp\alphapager\ActiveDataProvider;
class PersonController extends Controller
{
// ...
public function actionIndex() {
$dataProvider = new ActiveDataProvider([
'query' => Person::find()->orderBy('last_name, first_name'),
'alphaAttribute' => 'last_name'
]);
return $this->render('index', [
'dataProvider' => $dataProvider
]);
}
// ... more actions ...
}
相应的视图文件index.php
可能如下所示:
<?php
use sjaakp\alphapager\AlphaPager;
?>
<?= AlphaPager::widget([
'dataProvider' => $dataProvider
]) ?>
<?= GridView::widget([
'dataProvider' => $dataProvider,
'columns' => [
'last_name',
'first_name',
],
]); ?>
类
ActiveDataProvider和ActiveArrayProvider
这些是来自yii\data
中Yii的对应扩展,并且可以以相同的方式使用。设置属性$alphaAttribute
非常重要。
$alphaAttribute
将此设置为用于定义页面的属性名称。必须设置。
$alphaDigits
设置处理以数字开头的属性值的方式。可以具有以下值
false
:无特殊处理;数字被当作任何其他非字母符号处理(默认值)'full'
:为每个数字创建单独的页面'compact'
:所有数字使用一个页面- 字符数组:字母分页器不显示字母字符,而是使用此数组中的字符;对于非西方字母表很有用
$alphaPages
修改字母分页器操作的设置。对于正常使用,此值可以保持默认值[]
(空数组)。有关更多信息,请参阅_AlphaTrait.php
源代码。
$alphaDefault
默认页面值;如果没有给出明确的页面,则打开此页面。默认值:'A'
。
$alphaParam
字母分页器HTML参数名称。默认值:'alpha'
。如果与其他功能冲突,可能需要更改。
AlphaPager
这是实际渲染字母分页器的部件。必须设置属性$dataProvider
。
$dataProvider
此分页器关联的 Yii2 Alphapager ActiveDataProvider
或 ArrayDataProvider
。必须设置。
$preButtons
array
应出现在字母按钮左侧的页面按钮值。如果您不希望出现 'all' 按钮,请将其设置为 []
。默认:[ 'all' ]
。
$postButtons
array
应出现在字母按钮右侧的页面按钮值。如果您不希望出现 '#'(非字母)按钮,请将其设置为 []
。默认:[ 'symbol' ]
。
$lowerCase
boolean
字母按钮是否以小写形式渲染。默认:false
。
$options
array
字母分页器容器标签的 HTML 选项。默认:[ 'class' => 'pagination' ]
,与 Bootstrap 兼容。
$buttonOptions
array
字母分页器按钮的 HTML 选项。默认:[ 'class' => 'page-item' ]
,与 Bootstrap 4 兼容。
$linkOptions
array
字母分页器链接的 HTML 选项。默认:[ 'class' => 'page-link' ]
,与 Bootstrap 4 兼容。