从零开始学YII2框架(五)快速生成代码工具 Gii 的使用
作者:hebedich 发布时间:2024-05-11 09:54:56
Yii2 框架 之所以称之为高效快速开发的一款框架,是因为有一个神奇的工具Gii
用过Yii1框架的Coder都知道,Gii可以为你快速生成代码,也就是说搭建一个可以增删改查的WebApp可能一行代码都不用写。
当然作为Coder,不写代码怎么能实现我们想要的功能呢。
上次介绍了如何安装Yii框架,本次介绍一下如何使用gii工具快速实现CRUD功能。
框架安装完成后可以通过如下链接访问Gii工具
http://localhost/yii2test/backend/web/index.php?r=gii
Yii2的Gii工具使用了Bootstrap,对比Yii1看起来漂亮了许多。
yii2框架提供的生成工具有6个:Model,CRUD,Controller,Form,Module,Extension
我安装了一个yii2-kartikgii插件,此插件是用来生成Kartik模式的CRUD方法的。
本次就拿Kartik Crud配合默认生成工具来讲解。
模块的生成
如果你想实现应用模块化, 那么Module Generator能帮助到你。点击Module Generator生成模块
生成一个名为“user”的模块
点击Preview会看到Gii会帮助我们生成三个文件,可以点击链接预览代码。
点击Generate生成代码。
代码生成完毕,需要配置文件backend/config/main.php,把模块添加到应用里。
浏览器输入如下地址:
http://localhost/yii2test/backend/web/index.php?r=user
访问的是user模块
提示你
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。
配置好数据库,我们使用Model Generator来生成对应的模型。
yii2会读取数据库中的表,如果数据库中没有user这个表。是无法读取数据库字段自动生成代码的。
这里注意填写namespace,带有路径的指定到模块user下的models。
建议勾选 Enable I18N,可以国际化WebApp。点击Generate生成代码。
CRUD方法生成
这里我使用的是插件yii2-kartikgii。关于yii2-kartikgii的安装和使用参照《Yii2 插件kartikgii》
下面来使用Kartik CRUD Generator来生成CRUD方法
需要注意的是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
此页面访问的是模块user下的user数据表模型CRUD方法。代码生成时候默认显示了表中的5个字段。使用的是Kartikgii插件。对比框架自带的CRUD方法生成的界面相对漂亮些。把表格放在bootstrap - panel标签下。并且添加了导出表格、重置表格等功能。
至此我们只是简单的配置了下config文件,没有编写一行代码。就实现了WebApp对数据表的操作功能。
Yii框架是不是很强大,很好用呢。至于我们对表怎么操作,完全可以自定义。后续就可以投入代码编写中了。
Yii框架帮助我们缩减了很多代码开发的工作量。可以称之为高效的PHP开发框架。


猜你喜欢
- 从几年前开始学习编程直到现在,一直对程序中的异常处理怀有恐惧和排斥心理。之所以这样,是因为不了解。这次攻python,首先把自己最畏惧和最不
- 我们经常见到很多网站留言系统的显示访客的IP地址都是隐藏了一部分,以达到隐蔽访客真实地理位置的功能。如:111.222.333.*,当然在系
- SQL Server创建临时表:创建临时表 方法一: &n
- 翻译说明:这是Solid State Group网站上的一篇很友好的文章,解决了我在设计中遇到的很多问题,故在此我翻译其文,并对原作者表示非
- 在还源数据库时出现以下错误(详情参见下图):System.Data.SqlClient.SqlError: 在对 'C:\Progr
- python -m 和 python 的区别-m 的含义表示将库当作脚本来执行。python file.py正常的执行Python脚本似乎都
- 关于python数据分析常用库pandas中的DataFrame的loc和iloc取数据 基本方法总结归纳及示例如下:1.准备一组DataF
- PHP重启php-fpm的方法启动php-fpm:/usr/local/php/sbin/php-fpmphp 5.3.3 以后的php-f
- python查找多层嵌套字典的值def find_dic(item, key): if isinstance(it
- 1.将 JSON 转换为 CSVimport jsonif __name__ == '__main__': &
- UserWarning: indexing with dtype torch.uint8 is now deprecated, please
- 一。存储过程的创建和使用 1.创建程序包,并在程序中创建存储过程 create or replace PACKAGE NCS_ICP_TJ
- 现代网络应用Web APP或大型网站的后台一般只有一个,然后客户端却是各种各样的(iOS, android, 浏览器),
- 一.秒杀业务分析 所谓秒杀,就是网络卖家发布一些超低价格的商品,所有买家在同一时间网上抢
- MySQL死锁问题是很多程序员在项目开发中常遇到的问题,现就MySQL死锁及解决方法详解如下:1、MySQL常用存储引擎的锁机制MyISAM
- 一、wxPython介绍 1.wxPython是Python语言的一套优秀的GUI图形库。wxPytho
- 一、语法错误异常:大多数的异常都不会被程序处理,都以错误信息的形式展现在这里二、异常处理while True: t
- 这几年JQuery写多了,传统的的javascript已经很久不写了,不少东西都忘掉了,还有多少人记得javascript中实现ajax操作
- 可是,其体积仍然很庞大。所以,在日常工作中,如何给SQL Server的备份文件瘦身,就是很多数据库管理员所关心的问题了。 也许微软的数据库
- 第五个页面name="changenick.php" <? include &q