Yii2怎样使用Gii代码生成器_Yii2使用Gii代码生成器方法【开发】

星伟吖_3324

星伟吖_3324

2026-04-10

347人浏览

原创

Yii2中可使用Gii生成模型、控制器和视图:需先在config/web.php中启用gii模块并配置allowedIPs;访问/gii界面后,依次用Model Generator建模型、CRUD Generator建控制器与视图;支持命令行调用、自定义模板及密码保护。

yii2怎样使用gii代码生成器_yii2使用gii代码生成器方法【开发】

如果您在Yii2框架中需要快速生成模型、控制器、视图等基础代码结构,则可以使用内置的Gii代码生成器。以下是启用并使用Gii的具体操作步骤:

一、启用Gii模块

Gii默认仅在开发环境中启用,需在应用配置中注册模块并设置访问权限,确保只有本地或可信IP可访问,防止生产环境暴露代码生成能力。

1、打开config/web.php文件,在modules配置项中添加gii模块定义。

2、为gii模块配置class为yii\gii\Module,并设置allowedIPs为['127.0.0.1', '::1']。

3、若使用高级模板,需确认frontend/config/main-local.php或backend/config/main-local.php中已包含gii配置。

二、访问Gii Web界面

启用模块后,可通过HTTP路由直接进入图形化代码生成界面,系统会自动校验请求来源是否在允许列表中。

1、启动Web服务器,确保应用可正常访问。

2、在浏览器地址栏输入/gii路径,例如http://localhost:8080/gii。

3、页面加载成功后,将显示Gii欢迎页及可用生成器列表;若提示“Forbidden”,请检查allowedIPs配置是否匹配当前客户端IP。

三、生成数据库模型(Model Generator)

该生成器根据数据库表结构自动生成继承yii\db\ActiveRecord的模型类,包含属性、规则、关联关系等基础定义。

1、在Gii首页点击Model Generator链接。

2、在Table Name字段输入目标数据表名,例如user;支持通配符如tbl_*批量生成。

3、设置Model Class名称(如User),确认Namespace为app\models,勾选Generate Relations和Generate Labels。

4、点击Preview按钮查看待生成文件列表,确认无误后点击Generate执行创建。

四、生成CRUD功能(CRUD Generator)

基于已有模型,CRUD生成器可一次性产出控制器、视图文件及动作方法,覆盖列表、查看、创建、更新、删除全流程。

1、返回Gii首页,点击CRUD Generator链接。

Yii Framework 2.0.51
Yii Framework 2.0.51

Yii Framework 2.0.51 官方 Basic 应用模板,适合旧项目兼容、升级验证和开发测试。

下载

2、在Model Class中输入已生成的模型完整类名,例如app\models\User。

3、设置Controller Class为app\controllers\UserController,View Path为@app/views/user。

4、点击Preview检查所有将被创建的文件路径,特别注意控制器中access()方法是否符合权限控制需求。

五、使用命令行方式调用Gii

除Web界面外,Gii也支持通过yii命令行工具执行,适用于CI/CD流程或无Web访问权限的部署场景。

1、进入项目根目录,执行php yii gii/model --tableName=user --className=User生成模型。

2、执行php yii gii/crud --modelClass=app\models\User --controllerClass=app\controllers\UserController生成CRUD。

3、使用--interactive=0参数可跳过交互式确认,配合--overwrite=1强制覆盖已有文件。

六、自定义Gii模板

Gii默认使用内置模板,但开发者可复制并修改模板文件,以适配项目特定命名规范、注释格式或扩展逻辑。

1、将vendor/yiisoft/yii2-gii/generators/下对应生成器的templates目录复制到@app/gii/路径下。

2、在gii模块配置中添加generators子项,例如为模型生成器指定'templates' => ['my' => '@app/gii/model/my']。

3、在Gii Web界面的生成器选项中,下拉选择my模板,即可应用自定义输出结构。

七、配置Gii密码保护

当开发环境需多人共用且存在非本地访问需求时,可通过设置密码增强Gii入口安全性,避免未授权代码生成行为。

1、在gii模块配置中添加'password' => 'your_secure_password'字段。

2、保存配置后再次访问/gii,页面将出现密码输入框。

3、输入配置中指定的明文密码后方可进入生成器列表;密码错误将返回403状态。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

yii

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
php文件怎么打开
php文件怎么打开

打开php文件步骤:1、选择文本编辑器;2、在选择的文本编辑器中,创建一个新的文件,并将其保存为.php文件;3、在创建的PHP文件中,编写PHP代码;4、要在本地计算机上运行PHP文件,需要设置一个服务器环境;5、安装服务器环境后,需要将PHP文件放入服务器目录中;6、一旦将PHP文件放入服务器目录中,就可以通过浏览器来运行它。

2023.09.01

12344

6

php怎么取出数组的前几个元素
php怎么取出数组的前几个元素

取出php数组的前几个元素的方法有使用array_slice()函数、使用array_splice()函数、使用循环遍历、使用array_slice()函数和array_values()函数等。本专题为大家提供php数组相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.11

7141

5

php反序列化失败怎么办
php反序列化失败怎么办

php反序列化失败的解决办法检查序列化数据。检查类定义、检查错误日志、更新PHP版本和应用安全措施等。本专题为大家提供php反序列化相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.11

2215

5

php怎么连接mssql数据库
php怎么连接mssql数据库

连接方法:1、通过mssql_系列函数;2、通过sqlsrv_系列函数;3、通过odbc方式连接;4、通过PDO方式;5、通过COM方式连接。想了解php怎么连接mssql数据库的详细内容,可以访问下面的文章。

2023.10.23

4488

4

php连接mssql数据库的方法
php连接mssql数据库的方法

php连接mssql数据库的方法有使用PHP的MSSQL扩展、使用PDO等。想了解更多php连接mssql数据库相关内容,可以阅读本专题下面的文章。

2023.10.23

5214

6

html怎么上传
html怎么上传

html通过使用HTML表单、JavaScript和PHP上传。更多关于html的问题详细请看本专题下面的文章。php中文网欢迎大家前来学习。

2023.11.03

4091

9

PHP出现乱码怎么解决
PHP出现乱码怎么解决

PHP出现乱码可以通过修改PHP文件头部的字符编码设置、检查PHP文件的编码格式、检查数据库连接设置和检查HTML页面的字符编码设置来解决。更多关于php乱码的问题详情请看本专题下面的文章。php中文网欢迎大家前来学习。

2023.11.09

5917

8

php文件怎么在手机上打开
php文件怎么在手机上打开

php文件在手机上打开需要在手机上搭建一个能够运行php的服务器环境,并将php文件上传到服务器上。再在手机上的浏览器中输入服务器的IP地址或域名,加上php文件的路径,即可打开php文件并查看其内容。更多关于php相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

2023.11.13

4642

8

sprintf函数用法详解
sprintf函数用法详解

sprintf函数的用法:1、格式化字符串;2、指定输出宽度和精度;3、返回值。更多关于sprintf函数用法详解的内容,大家可以阅读下面的文章。

2023.11.27

12442

4

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Yii Framework 2.0 API 官方文档
Yii Framework 2.0 API 官方文档

共0课时 | 0人学习

Yii2.0框架开发实战视频教程
Yii2.0框架开发实战视频教程

共22课时 | 9.3万人学习