thrieu/yii2-grid-view-state
Composer 安装命令:
composer require thrieu/yii2-grid-view-state
包简介
Save filters from GridView to session, keep the filter state between pages.
README 文档
README
Save filters from GridView to session, keep filter state between pages.
Features
- Very flexible. Separate setting and getting.
- Setting via behavior.
- Determines uniqueness by action's route and a customizable ID.
Installation
To install, either run
php composer.phar require --prefer-dist thrieu/yii2-grid-view-state "dev-master"
or add
"thrieu/yii2-grid-view-state": "dev-master"
to the require section of your composer.json file and then run composer update.
Usage
Step 1
Create \app\widgets\Gridview.php
Extend GridView class, simply implement FilterStateInterface and FilterStateTrait.
namespace \app\widgets; use thrieu\grid\FilterStateInterface; use thrieu\grid\FilterStateTrait; class GridView extends \yii\grid\GridView implements FilterStateInterface { use FilterStateTrait; }
Step 2
Attach the filter behavior to your GridView widget.
use \app\widgets\Gridview; ... GridView::widget([ ... 'as filterBehavior' => \thrieu\grid\FilterStateBehavior::className(), ... ]);
Step 3
Update \app\models\xxxSearch.php
To get the params which is merged with GridView state params and GET query params, and then set it to filter model and DataProvider.
// DataProvider $dataProvider = new ActiveDataProvider([ 'query' => $query, 'pagination' => [ 'params' => \app\widgets\GridView::getMergedFilterStateParams(), ], 'sort' => [ 'params' => \app\widgets\GridView::getMergedFilterStateParams(), ], ]); // Filter model $this->load(\app\widgets\GridView::getMergedFilterStateParams());
Enjoy it.
Clear state
Update \app\controllers\xxxController.php
Add ClearFilterStateBehavior to behaviors() of your controller.
public function behaviors() { return [ ... 'clearFilterState' => \thrieu\grid\ClearFilterStateBehavior::className(), ... ]; }
And then add a form to your frontend page.
$form = Html::beginForm(); $form .= Html::hiddenInput('clear-state', '1'); $form .= Html::hiddenInput('redirect-to', ''); $form .= Button::widget([ 'label' => Yii::t('app', 'Reset filter'), ]); $form .= Html::endForm(); echo $form;
get filter settings by route
$filterData = GridView::getMergedFilterStateParams(null, null, 'delivery/cmd-delivery/index'); $model->load($filterData);
Prev Next model for view screens
for gridview set usepreview = true
use \app\widgets\Gridview; ... GridView::widget([ ... 'as filterBehavior' => \thrieu\grid\FilterStateBehavior::class, 'usePrevNext' => true, ... ]);
for prev next buttons easy get previousa nd next model keys values
$prevNext = new PrevNextPage('cars/in-way/index'); if ($prevId = $prevNext->getPrevPage($model->id)) { echo ThButton::widget([ 'tooltip' => Yii::t('blankonthema', 'Previous record'), 'link' => [ 'view', 'id' => $prevId, ], 'icon' => 'arrow-left', 'type' => ThButton::TYPE_DEFAULT ]); } if ($nextId = $prevNext->getNextPage($this->id)) { echo ThButton::widget([ 'tooltip' => Yii::t('blankonthema', 'Next record'), 'link' => [ 'view', 'id' => $nextId, ], 'icon' => 'arrow-right', 'type' => ThButton::TYPE_DEFAULT ]); }
thrieu/yii2-grid-view-state 适用场景与选型建议
thrieu/yii2-grid-view-state 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 13.64k 次下载、GitHub Stars 达 13, 最近一次更新时间为 2017 年 05 月 22 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「filter」 「extension」 「widget」 「yii2」 「gridview」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 thrieu/yii2-grid-view-state 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 thrieu/yii2-grid-view-state 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 thrieu/yii2-grid-view-state 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
A custom URL rule class for Yii 2 which allows to create translated URL rules
Nova searchable filter for belongsTo relationships.
Yii2 LightBox image galary widget uses Lightbox v2.10.0 by Lokesh Dhakar
The Yii2 extension uses jQuery jquery.carousel-1.1.min.js and makes image carousel from php array of structure defined.
TYPO3 CMS extension to create gallery content element with preset crop ratios and pagination
Symfony DataGridBundle
统计信息
- 总下载量: 13.64k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 13
- 点击次数: 23
- 依赖项目数: 1
- 推荐数: 0
其他信息
- 授权协议: BSD
- 更新时间: 2017-05-22