drsdre / yii2-radtools

快速应用程序开发工具,用于快速构建相互关联的CRUD UI。使用yii2-ajaxcrud生成弹出表单和(可选)kartik-v的Dynagrid。

安装: 793

依赖: 0

建议: 0

安全: 0

星星: 1

关注者: 4

分支: 0

开放问题: 0

类型:yii2-extension

3.2.2 2019-04-12 12:02 UTC

This package is auto-updated.

Last update: 2024-09-12 23:31:52 UTC


README

Build Status

快速应用程序开发控制器,用于快速构建与数据库模型关联的完整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>&nbsp;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>&nbsp; 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 添加参数的解释。