sjaakp/yii2-alphapager

在Yii2中关于首字母的页面数据。

安装次数4,007

依赖关系: 0

建议者: 0

安全性: 0

星标: 18

关注者: 6

分支: 6

公开问题: 3

类型:yii2-extension

1.0.4 2019-04-24 12:06 UTC

This package is auto-updated.

Last update: 2024-08-29 12:19:44 UTC


README

Latest Stable Version Total Downloads License

Yii2 Alphapager可以通过例如GridViewListView实现字母分页。

只需使用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 ActiveDataProviderArrayDataProvider。必须设置。

$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 兼容。