自定义gii生成模块
主要形成modal(弹出窗)模板风格:
1、将vendor\yiisoft\yii2-gii\generators\crud\default复制到backend\components\gii-custom\crud\default,在backend中缺少的文件自己创建,default中包含gii自动生成的代码
2、配置main-local.php
$config['modules']['gii']=['class' => 'yii\gii\Module','allowedIPs' => ['127.0.0.1','::1'],'generators' => ['crud'=>['class'=>'yii\gii\generators\crud\Generator','templates'=>['myCrud'=>'@app/components/gii-custom/crud/default',]]],];
}
3、修改default中index.php的代码(都在该文件中中修改)
a.create按钮
<p><?= "<?= " ?>Html::a(<?= $generator->generateString('创建' . Inflector::camel2words(StringHelper::basename($generator->modelClass))) ?>, ['create'], ['class' => 'btn btn-success','id'=>'create','data-toggle'=>'modal','data-target'=>'#operate-modal',]) ?></p>
b、GridView和modal结合
['class' => 'yii\grid\ActionColumn','template'=>'{update}{delete}','header'=>'操作','buttons'=>['update'=>function ($url,$model,$key){return Html::a('信息',$url,['title'=>'栏目信息','class'=>'btn btn-default btn-update','data-toggle'=>'modal','data-target'=>'#operate-modal',]);},'delete'=>function ($url,$model,$kry){return Html::a('删除',$url,['title'=>'删除','class'=>'btn btn-default','data'=>['confirm'=>'确定删除吗?','method'=>'post',],]);},],],
c、页面低端创建modal和create、update
//创建modalModal::begin(['id'=>'operate-modal','header'=>'<h4 class="modal-title"></h4>']);Modal::end();//创建create$requestCreateUrl=Url::toRoute('create');//创建update$requestUpdateUrl=Url::toRoute('update');$js=<<<JS//创建create操作$('#create').on('click',function(){$('.modal-title').html('创建');$.get('{$requestCreateUrl}',function (data){$('.modal-body').html(data);});});//创建update操作$('.btn-update').on('click',function{$('.modal-title').html('删除');$.get('{$requestUpdateUrl}',{id:$(this).closest('tr').data('key')},function(data){$('.modal-body').html(data);});});
JS;$this->registerJs($js);
4、修改表单页面_fom.php
<?= "<?php " ?>$form = ActiveForm::begin(['id'=>'<?= Inflector::camel2id(StringHelper::basename($generator->modelClass)) ?>-id','enableAjaxValidation'=>true,//通过异步验证'validationUrl'=>Url::toRoute('validate-form'),]); ?>
5、在控制器中增加actionValidateForm验证
//异步表单验证ValidateFormpublic function actionValidateForm(){$model=new <?=$modelClass?>();$model->load(Yii::$app->request->post());Yii::$app->response->format=yii\web\Response::FORMAT_JSON;return \yii\widgets\ActiveForm::validate($model);}
6、针对某个数据表可以gii生成相应的模板
注:自己也是学习白狼大哥的教程,只是作为自己学习的总结
http://www.manks.top/document/yii2-blog-manage.html
自定义gii生成模块相关推荐
- YII2使用Gii生成代码
Yii2 框架 之所以称之为高效快速开发的一款框架,是因为有一个神奇的工具Gii 用过Yii1框架的Coder都知道,Gii可以为你快速生成代码,也就是说搭建一个可以增删改查的WebApp可能一行代码 ...
- pythonsocket自定义协议_小渣渣学习笔记 python day28【tcp聊天 udp聊天 粘包 自定义协议 struct模块】...
tcp 实现聊天功能 server端 import socket sk = socket.socket() sk.bind(('127.0.0.1',22000)) sk.listen() while ...
- yii mysql gii_Yii 框架使用Gii生成代码操作示例
本文实例讲述了Yii 框架使用Gii生成代码操作.分享给大家供大家参考,具体如下: 开始 Gii Gii 是 Yii 中的一个模块. 可以通过配置应用的 modules 属性开启它.通常来讲在 con ...
- 使用反射机制深入理解AOP机制并自定义AOP管理模块
最近在总结过去一年所做的项目,由于开发周期或者对需求的把握不是太到位,每个项目随着所做的项目进度,从需求分析到code阶段总或多或少有一些自己感觉不是太完美或没有尽善尽美的地方,使用开源框架和第三方接 ...
- python自定义包或模块在Linux服务器导入错误的解决办法
python自定义包或模块在Linux服务器导入错误的解决办法 在本地机器上跑python代码,自己定义的文件进行导包运行是没有问题,但是放到linux服务器上的时候就会提示 ImportError: ...
- TP自动生成模块目录
TP自动生成模块目录 例如我想在项目中增加一个AdminI模块 只需要在入口文件index.php中添加: define('BIND_MODULE','Admin'); 再访问127.0.0.1项目就 ...
- 关于 mybatis-generator自定义注释生成 使用DefaultCommentGenerator重写来完成
项目里新建表时model,mapper以及mapper.xml基本都是用Mybatis Generator(以下简称为MBG)自动生成的,但是MBG自动生成的model的注释实在有点非人类,至少中国人 ...
- (转)Maven之自定义archetype生成项目骨架
背景:最近在开发一个项目的基础构件,在以后项目的开发过程中可以直接使用该构件快速的生成项目骨架进行开发. 摘要:使用过Maven的人都知道maven中有许多功能都是通过插件来提供的,今天我们来说一下其 ...
- [网络安全自学篇] 十六.Python攻防之弱口令、自定义字典生成及网站防护
这是作者的系列网络安全自学教程,主要是关于网安工具和实践操作的在线笔记,特分享出来与博友共勉,希望您们喜欢,一起进步.前文分享了Python网络攻防基础知识.Python多线程.C段扫描和数据库编程, ...
最新文章
- 不用for 也能实现按照某索引排好某序列
- 你必须收藏的Github技巧
- (三)SSO之CAS框架单点退出,退出到CAS登录界面
- 动态规划入门_数塔问题
- 程序员在囧途之我是一头牛
- C++函数概念解析(1)
- python整数因子_Python:通过非整数因子下采样2D numpy数组
- FCKeditor + smarty
- leetcode题解677-键值映射
- php中global和$GLOBALS[]的分析之一
- JAVASE学习总结(20):字符串相关的类--StringBuffer
- 添加内核驱动模块(5)(mydriver.c+ Konfig+Makefile )
- (上篇)中国金融体系主要指标大全
- 去除VScode中的蓝色波浪线
- 修改sublime的快捷键
- Learning Lightroom CC 学习Lightroom CC Lynda课程中文字幕
- AMD GPU的断点指令
- c语言程序for循环处设断点,期中总结
- 手机QQ登录测试用例
- 概率论与数理统计(知识点概览)
热门文章
- LINUX IIO子系统分析之五IIO BUFFER子模块实现分析
- win10安装mujoco一点细节
- 千万别把WIFI玩坏了!关于WIFI的新鲜玩法和商业模式探讨
- k折交叉验证优缺点_都说K折交叉验证最常见,你会做吗?
- 墨者安全调查:2018年DDoS威胁与黑灰产业调查报告
- MLX90640开发笔记(十)成果展示-红眼睛相机
- jzy3D从入门到弃坑_4尝试使用jzy3D1.0画图失败
- 数据库之Mysql索引、事务与存储引擎
- Redis6.3版本Redis.config 解读(重要的)
- 《Adobe Premiere Pro CS4经典教程》——1.7 Adobe Premiere Pro工作区