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

如果您在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链接。
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状态。


















