从零开始学YII2框架(五)快速生成代码工具 Gii 的使用


Posted in PHP onAugust 20, 2014

Yii2 框架 之所以称之为高效快速开发的一款框架,是因为有一个神奇的工具Gii

用过Yii1框架的Coder都知道,Gii可以为你快速生成代码,也就是说搭建一个可以增删改查的WebApp可能一行代码都不用写。

当然作为Coder,不写代码怎么能实现我们想要的功能呢。

上次介绍了如何安装Yii框架,本次介绍一下如何使用gii工具快速实现CRUD功能。

框架安装完成后可以通过如下链接访问Gii工具

http://localhost/yii2test/backend/web/index.php?r=gii

从零开始学YII2框架(五)快速生成代码工具 Gii 的使用

Yii2的Gii工具使用了Bootstrap,对比Yii1看起来漂亮了许多。

yii2框架提供的生成工具有6个:Model,CRUD,Controller,Form,Module,Extension

我安装了一个yii2-kartikgii插件,此插件是用来生成Kartik模式的CRUD方法的。

本次就拿Kartik Crud配合默认生成工具来讲解。

从零开始学YII2框架(五)快速生成代码工具 Gii 的使用

模块的生成

如果你想实现应用模块化, 那么Module Generator能帮助到你。点击Module Generator生成模块

生成一个名为“user”的模块

从零开始学YII2框架(五)快速生成代码工具 Gii 的使用

点击Preview会看到Gii会帮助我们生成三个文件,可以点击链接预览代码。

点击Generate生成代码。

代码生成完毕,需要配置文件backend/config/main.php,把模块添加到应用里。

从零开始学YII2框架(五)快速生成代码工具 Gii 的使用

浏览器输入如下地址:

http://localhost/yii2test/backend/web/index.php?r=user

访问的是user模块

从零开始学YII2框架(五)快速生成代码工具 Gii 的使用

提示你

This is the view content for action "index". The action belongs to the controller "backend\modules\user\controllers\DefaultController" in the "user" module.

You may customize this page by editing the following file:

D:\WAMP\www\yii2test\backend\modules\user\views\default\index.php

这个界面内容访问的是模块user下的defaultController执行的是index这个action。

你可能需要自定义这个页面通过修改模块下的views文件index.php

模型的生成

模型的生成首先得配置数据库配置文件,路径:yii2test/common/config/main-local.php。

从零开始学YII2框架(五)快速生成代码工具 Gii 的使用

配置好数据库,我们使用Model Generator来生成对应的模型。

从零开始学YII2框架(五)快速生成代码工具 Gii 的使用

yii2会读取数据库中的表,如果数据库中没有user这个表。是无法读取数据库字段自动生成代码的。

这里注意填写namespace,带有路径的指定到模块user下的models。

建议勾选 Enable I18N,可以国际化WebApp。点击Generate生成代码。

CRUD方法生成

这里我使用的是插件yii2-kartikgii。关于yii2-kartikgii的安装和使用参照《Yii2 插件kartikgii》

下面来使用Kartik CRUD Generator来生成CRUD方法从零开始学YII2框架(五)快速生成代码工具 Gii 的使用

需要注意的是Model Class、Search Model Class、Controller Class都需要配置路径指定到相应模块;Model ID是user。

点击Generator会生成8个可选的文件。主要是生成UserControler和View文件。

经过上面三步。我们不经意间就完成了MVC。那么我们看看自动生成的代码为我们展现出来的有什么信息。

浏览器输入地址

http://localhost/yii2test/backend/web/index.php?r=user/user

从零开始学YII2框架(五)快速生成代码工具 Gii 的使用

此页面访问的是模块user下的user数据表模型CRUD方法。代码生成时候默认显示了表中的5个字段。使用的是Kartikgii插件。对比框架自带的CRUD方法生成的界面相对漂亮些。把表格放在bootstrap - panel标签下。并且添加了导出表格、重置表格等功能。

至此我们只是简单的配置了下config文件,没有编写一行代码。就实现了WebApp对数据表的操作功能。

Yii框架是不是很强大,很好用呢。至于我们对表怎么操作,完全可以自定义。后续就可以投入代码编写中了。

Yii框架帮助我们缩减了很多代码开发的工作量。可以称之为高效的PHP开发框架。

PHP 相关文章推荐
图书管理程序(一)
Oct 09 PHP
可定制的PHP缩略图生成程式(需要GD库支持)
Mar 06 PHP
PHP第一季视频教程(李炎恢+php100 不断更新)
May 29 PHP
注册页面之前先验证用户名是否存在的php代码
Jul 14 PHP
解析php中eclipse 用空格替换 tab键
Jun 24 PHP
PHP两种快速排序算法实例
Feb 15 PHP
PHP传参之传值与传址的区别
Apr 24 PHP
PHP使用php-resque库配合Redis实现MQ消息队列的教程
Jun 29 PHP
PHP Socket网络操作类定义与用法示例
Aug 30 PHP
详解php伪造Referer请求反盗链资源
Jan 24 PHP
php操作redis常见方法示例【key与value操作】
Apr 14 PHP
如何利用PHP实现上传图片功能详解
Sep 24 PHP
PHP面向对象程序设计之类常量用法实例
Aug 20 #PHP
从零开始学YII2框架(四)扩展插件yii2-kartikgii
Aug 20 #PHP
PHP面向对象程序设计之接口用法
Aug 20 #PHP
从零开始学YII2框架(三)扩展插件yii2-gird
Aug 20 #PHP
从零开始学YII2框架(二)通过 Composer 安装扩展插件
Aug 20 #PHP
从零开始学YII2框架(一)通过Composer安装Yii2框架
Aug 20 #PHP
实用的PHP带公钥加密类分享(每次加密结果都不一样哦)
Aug 20 #PHP
You might like
PHP 5.0 Pear安装方法
2006/12/06 PHP
PHP正确解析UTF-8字符串技巧应用
2012/11/07 PHP
PHP标准类(stdclass)用法示例
2016/09/28 PHP
PHP数组Key强制类型转换实现原理解析
2020/09/01 PHP
javascript同步Import,同步调用外部js的方法
2008/07/08 Javascript
Javascript delete 引用类型对象
2013/11/01 Javascript
Jquery模仿Baidu、Google搜索时自动补充搜索结果提示
2013/12/26 Javascript
jquery选择checked在ie8普通模式下的问题
2014/02/12 Javascript
JavaScript地理位置信息API
2016/06/11 Javascript
ng-options和ng-checked在表单中的高级运用(推荐)
2017/01/21 Javascript
Node.js 中使用 async 函数的方法
2017/11/20 Javascript
vue 巧用过渡效果(小结)
2018/09/22 Javascript
手把手15分钟搭一个企业级脚手架
2019/09/16 Javascript
微信公众号中的JSSDK接入及invalid signature等常见错误问题分析(全面解析)
2020/04/11 Javascript
js实现表格单列按字母排序
2020/08/12 Javascript
[01:56]无止竞 再出发——中国军团出征2017年DOTA2国际邀请赛
2017/07/05 DOTA
详解Python编程中time模块的使用
2015/11/20 Python
快速了解Python中的装饰器
2018/01/11 Python
Python使用Tkinter实现机器人走迷宫
2018/01/22 Python
Python统计python文件中代码,注释及空白对应的行数示例【测试可用】
2018/07/25 Python
如何利用Boost.Python实现Python C/C++混合编程详解
2018/11/08 Python
对python判断ip是否可达的实例详解
2019/01/31 Python
局域网内python socket实现windows与linux间的消息传送
2019/04/19 Python
python ChainMap 合并字典的实现步骤
2019/06/11 Python
Python面向对象原理与基础语法详解
2020/01/02 Python
使用python实现多维数据降维操作
2020/02/24 Python
用python发送微信消息
2020/12/21 Python
一款css实现的鼠标经过按钮的特效
2014/09/11 HTML / CSS
瑞典领先的汽车零部件网上零售商:bildelaronline24.se
2017/01/12 全球购物
HashMap和Hashtable的区别
2013/05/18 面试题
你对IPv6了解程度
2016/02/09 面试题
教导处工作制度
2014/01/18 职场文书
后勤主管岗位职责
2014/03/01 职场文书
党支部特色活动方案
2014/08/20 职场文书
中学生检讨书范文
2014/11/03 职场文书
JS如何实现基于websocket的多端桥接平台
2021/05/14 Javascript