mickgeek / yii2-actionbar
用于 GridView 小部件的具有批量操作的控件栏。
1.2.0
2022-06-12 19:38 UTC
Requires
- yiisoft/yii2: *
This package is not auto-updated.
Last update: 2024-09-16 06:22:54 UTC
README
ActionBar 是一个 Yii 2 小部件,用于渲染下拉列表以操纵选定的 GridView 项目和控制按钮。该小部件允许您完全自定义元素。
安装
您可以使用 Composer 安装小部件。只需在您的应用程序文件夹下运行以下命令
php composer.phar require --prefer-dist mickgeek/yii2-actionbar
用法
use mickgeek\actionbar\Widget as ActionBar; <?= ActionBar::widget([ 'grid' => 'user-grid', ]) ?>
但首先,将操作添加到您的控制器中
public function actions() { return [ 'delete-multiple' => [ 'class' => 'mickgeek\actionbar\DeleteMultipleAction', 'modelClass' => 'app\models\User', ], ]; }
注意:您可以在不使用
DeleteMultipleAction类的情况下编写自己的操作。
提示:有关小部件的属性和方法的信息,请参阅捆绑的
DOCUMENTATION.md。
示例
以下是两个示例,展示了小部件的一些功能。
高级批量操作
视图中的代码
use yii\helpers\Url; use mickgeek\actionbar\Widget as ActionBar; <?= ActionBar::widget([ 'grid' => 'user-grid', 'templates' => [ '{bulk-actions}' => ['class' => 'col-xs-4'], '{create}' => ['class' => 'col-xs-8 text-right'], ], 'bulkActionsItems' => [ 'Update Status' => [ 'status-active' => 'Active', 'status-blocked' => 'Blocked', ], 'General' => ['general-delete' => 'Delete'], ], 'bulkActionsOptions' => [ 'options' => [ 'status-active' => [ 'url' => Url::toRoute(['update-status', 'status' => 'active']), 'disabled' => !Yii::$app->user->can('updateUserStatus'), ], 'status-blocked' => [ 'url' => Url::toRoute(['update-status', 'status' => 'blocked']), 'disabled' => !Yii::$app->user->can('updateUserStatus'), ], 'general-delete' => [ 'url' => Url::toRoute('delete-multiple'), 'data-confirm' => 'Are you sure?', 'disabled' => !Yii::$app->user->can('deleteUser'), ], ], 'class' => 'form-control', ], ]) ?>
User 控制器中的代码
public function actions() { return [ 'delete-multiple' => [ 'class' => 'mickgeek\actionbar\DeleteMultipleAction', 'modelClass' => 'app\models\User', 'beforeDeleteCallback' => function ($action) { if (!Yii::$app->user->can('deleteOwnAccount', Yii::$app->getRequest()->post('ids'))) { Yii::$app->getSession()->setFlash('error', 'You cannot delete your own account.'); $action->redirect(); Yii::$app->end(); } }, 'afterDeleteCallback' => function ($action) { Yii::$app->getSession()->setFlash('success', 'The selected users have been deleted successfully.'); }, ], ]; } public function actionUpdateStatus($status) { ... }
自定义按钮
代码
use mickgeek\actionbar\Widget as ActionBar; /* @var $model app\models\User */ <?= ActionBar::widget([ 'templates' => [ '{back}' => ['class' => 'col-xs-4'], '{update} {delete}' => ['class' => 'col-xs-8 text-right'], ], 'elements' => [ 'back' => Html::a( '<span class="glyphicon glyphicon-chevron-left"></span> ' . 'Back', ['/users/index'], ['class' => 'btn btn-default'] ), 'update' => Html::a( '<span class="glyphicon glyphicon-pencil"></span> ' . 'Update', ['/users/update', 'id' => $model->id], ['class' => 'btn btn-default'] ), 'delete' => Html::a( '<span class="glyphicon glyphicon-trash"></span> ' . 'Delete', ['/users/delete', 'id' => $model->id], ['class' => 'btn btn-default'] ), ], ]) ?>
许可证
此扩展程序在 BSD 3-Clause 许可证下发布。有关详细信息,请参阅捆绑的 LICENSE.md。


