sjaakp / yii2-datepager
在Yii2中按日期值分页的数据。
Requires
This package is not auto-updated.
Last update: 2024-09-22 13:10:22 UTC
README
为Yii2提供日期值分页
以下类允许在Yii 2.0 PHP框架中根据日期值进行数据库分页。
yii2-datepager的演示请在此查看。
安装
安装yii2-datepager的首选方法是通过Composer。您可以将以下内容添加到您的composer.json
文件的require部分中
"sjaakp/yii2-datepager": "*"
或者运行
composer require sjaakp/yii2-datepager "*"
您也可以通过下载ZIP格式的源代码来手动安装yii2-datepager。
使用Datepager
使用Yii2 Datepager很简单。一个最小使用场景可能如下。在EventController.php
中,我们可能会有以下内容
<?php
use sjaakp\datepager\ActiveDataProvider;
class EventController extends Controller
{
// ...
public function actionIndex() {
$dataProvider = new ActiveDataProvider([
'query' => Event::find(),
'dateAttribute' => 'date'
]);
return $this->render('index', [
'dataProvider' => $dataProvider
]);
}
// ... more actions ...
}
相应的视图文件index.php
可能如下所示
<?php
use sjaakp\datepager\DatePager;
?>
<?= DatePager::widget([
'dataProvider' => $dataProvider
]) ?>
<?= GridView::widget([
'dataProvider' => $dataProvider,
'columns' => [
'date',
'title',
// ... more columns ...
],
]); ?>
类
ActiveDataProvider
这是从yii\data
中的Yii对应扩展,可以以相同的方式使用。设置属性$dateAttribute
很重要。
$dateAttribute
string
将此设置为用于定义页面的属性名称。必须设置。
$interval
string
定义页面间隔。必须设置,形式为PHP的DateInterval
可以理解的。默认:'P1Y'
(一年)。
$ascending
bool
是否按升序或降序渲染DatePager页面。默认:true
(升序)。
$beginDate
string
第一个Datepager页面的日期。如果未设置(默认),Datepager将自行确定此日期。它可以是第一页范围内的任何日期。格式:任何PHP 日期格式。
$endDate
string
最后一个Datepager页面的日期。如果未设置(默认),Datepager将自行确定此日期。它可以是最后一页范围内的任何日期。格式:任何PHP 日期格式。
$dateParam
string
Datepager的HTML参数名称。默认值:'date'
。如果与其他功能冲突,可能需要更改。
DatePager
这是实际渲染日期分页的控件。必须设置属性$dataProvider
。
$dataProvider
与该分页器关联的Datepager ActiveDataProvider
。必须设置。
$maxButtonCount
int
渲染的页面按钮的最大数量。默认:10
。
$labelFormat
null|string|callable
定义页面标签的格式。
- 如果
null
:DatePager根据数据提供者的间隔确定格式。 - 如果
string
:一个符合Yii的Fomrmatter::dateformat
的日期格式。 - 如果
callable
:一个function($page, $datePager)
,返回一个字符串,其中$page
是一个PHPDateTimeInterface
。
$options
array
日期分页器容器标签的 HTML 选项。默认:[ 'class' => 'pagination' ]
,与 Bootstrap 兼容。
$buttonOptions
array
日期分页器按钮的 HTML 选项。默认:[ 'class' => 'page-item' ]
,与 Bootstrap 4 兼容。
$linkOptions
array
日期分页器链接的 HTML 选项。默认:[ 'class' => 'page-link' ]
,与 Bootstrap 4 兼容。
$activePageCssClass
string
活跃页面的 CSS 类。默认:'active'
。
$disabledPageCssClass
string
禁用页面的 CSS 类。默认:'disabled'
。
$prevPageLabel, $nextPageLabel
'string'
上一页和下一页按钮的文本标签,不会进行 HTML 编码。如果 false
,则按钮不会渲染。默认:'«'
和 '»'
。
$firstPageLabel, $lastPageLabel
'string'
首页和末页按钮的文本标签,不会进行 HTML 编码。如果 false
(默认),则按钮不会渲染。
除了 $dataProvider
和 $labelFormat
之外的所有属性,都是 Yii 的 LinkPager 中对应属性的直接等效。