drsdre / yii2-radtools
快速应用程序开发工具,用于快速构建相互关联的CRUD UI。使用yii2-ajaxcrud生成弹出表单和(可选)kartik-v的Dynagrid。
3.2.2
2019-04-12 12:02 UTC
Requires
- php: >=7.0.0
- johnitvn/yii2-ajaxcrud: dev-master
- kartik-v/yii2-dynagrid: ~1.4
- yiisoft/yii2: ~2.0.14
Requires (Dev)
- codeception/codeception: ^2.2
- codeception/specify: ~0.4
- codeception/verify: ~0.3
README
快速应用程序开发控制器,用于快速构建与数据库模型关联的完整CRUD界面。支持yii2-ajaxcrud用于基于模态的CRUD表单(弹出窗口),kartik-v/Dynagrid用于Gridview和kartik-v/yii2-detail-view用于集成查看/更新/创建表单。
控制器包含以下内置操作
- index: 使用内置或kartik-v GridView的全页
- view: 完整页面或使用yii2-ajaxcrud模态框
- create: 完整页面或使用yii2-ajaxcrud模态框
- copy: 完整页面或使用yii2-ajaxcrud模态框
- update: 完整页面或使用yii2-ajaxcrud模态框
- delete: 完整页面或使用yii2-ajaxcrud模态框
- bulkUpdate: 从GridView执行批量操作
- bulkDelete: 从GridView执行批量操作
所有操作都可以配置为具有特定的成功URL和发送到视图的自定义变量。当存在带有操作的'return_url' GET参数时,它将覆盖成功URL。
安装
通过composer安装此扩展是首选方法。
运行以下命令
php composer.phar require --prefer-dist drsdre/yii2-radtools "*"
或将以下内容添加到您的composer.json文件的require部分。
"drsdre/yii2-radtools": "*"
使用
扩展安装后,只需从BaseAjaxCrudController扩展并添加设置即可
class UserController extends drsdre\radtools\BaseAjaxCrudController { protected $useDynagrid = true; protected $modelClass = 'app\models\UserForm'; protected $searchModelClass ='app\models\search\UserSearch'; protected $model_name = 'User'; protected $model_field_name = 'username';
要使用层次链接,只需从AjaxCrudHierarchyLinkController扩展并设置$hierarchy_links参数即可
class TableController extends drsdre\radtools\AjaxCrudHierarchyLinkController { protected $useDetailView = true; protected $useDynagrid = true; protected $modelClass = 'app\models\UserForm'; protected $searchModelClass ='app\models\search\UserSearch'; protected $model_name = 'User'; protected $model_field_name = 'username'; protected $hierarchy_links = [ 'user_id' => [ 'model' => 'app\models\User', 'linked_model' => 'user', 'breadcrumbs' => [ [ 'label' => 'Users', 'url' => '/user/overview', ], [ 'label' => '{model_name}', 'name_field' => 'username', 'url' => '/user/view?id={id}', ] ] ] ];
批量更新 & 删除
在BaseAjaxCrudController中默认启用了批量更新和批量删除操作。它们通过BulkButtonWidget添加到视图中。
批量更新使用可以设置在单个更新操作上的模型场景。您可以将用于更改数据的表单元素添加到'data-confirm-message'中。使用模型的准确字段名(在操作中自动映射)。'data-confirm-ok'字段用于构建提交按钮,该按钮推送。
例如
<?= DynaGrid::widget([ 'options' => [ 'id' => 'example-gridview', ], 'gridOptions'=>[ 'dataProvider' => $dataProvider, 'filterModel' => $searchModel, 'panel' => [ 'type' => 'primary', 'heading' => '<i class="glyphicon glyphicon-list"></i>', 'before' => '<em></em>', 'after' => BulkButtonWidget::widget( [ 'buttons' => Html::a( '<i class="glyphicon glyphicon-pencil"></i> Change Status', [ '/cmm-wptheme-map/bulk-update' ], [ 'class' => "btn btn-primary btn-xs", 'role' => 'modal-remote-bulk', 'data-method' => false,// for overide yii data api 'data-request-method' => 'post', 'data-confirm-title' => 'Bulk Change Status', 'data-confirm-message' => Html::dropDownList( 'status', '', common\models\Model::$statuses ), 'data-confirm-ok ' => Html::button( 'Save', [ 'class' => 'btn btn-primary', 'type' => "submit" ] ), ] ) . ' ' . Html::a( '<i class="glyphicon glyphicon-trash"></i> Delete All', [ "bulk-delete" ], [ 'class' => "btn btn-danger btn-xs", 'role' => 'modal-remote-bulk', 'data-confirm' => false, 'data-method' => false, 'data-request-method' => 'post', 'data-confirm-title' => 'Are you sure?', 'data-confirm-message' => 'Are you sure want to delete this item', ] ), ] ) . '<div class="clearfix"></div>', ], ], 'columns' => require(__DIR__.'/_columns.php'), ]); ?>
TODO 添加参数的解释。