必须先启用开发环境、配置Gii模块并设置IP白名单才能使用Gii——需定义YII_ENV为'dev',在bootstrap中注册gii,在modules中配置allowedIPs,再通过URL访问并生成模型与CRUD代码。

要在Yii项目中快速生成模型、控制器和视图代码,必须先让Gii工具可访问且能安全运行——它不是装上就能用的插件,而是依赖明确的开发环境标识、IP白名单和模块配置三重前提才能激活。
确认并启用开发环境模式
打开项目入口文件 web/index.php,检查是否已定义 YII_ENV 为 'dev'。若未设置,需在文件顶部添加:defined('YII_ENV') or define('YII_ENV', 'dev');
这一步不可跳过,【Gii模块仅在 YII_ENV === 'dev' 时自动注册】,生产环境或未声明该常量时,后续所有配置均无效。
检查 config/web.php 中是否已将 'gii' 加入 'bootstrap' 数组;若无,则手动追加:$config['bootstrap'][] = 'gii';
配置Gii模块并开放访问权限
在 config/web.php 的 'modules' 配置块内,添加或修改 gii 模块定义:
方法一(Yii2标准写法):'gii' => [ 'class' => 'yii\gii\Module', 'allowedIPs' => ['127.0.0.1', '::1', '192.168.33.10'],],
方法二(Yii1.x兼容写法):'gii' => [ 'class' => 'system.gii.GiiModule', 'password' => 'your_secure_password', 'ipFilters' => ['127.0.0.1', '192.168.1.*'],],
【allowedIPs 必须包含你当前访问Gii所用设备的真实IP】,比如在Docker容器中开发却只填了 127.0.0.1,会导致403拒绝访问;虚拟机或远程调试时漏掉宿主机IP,同样打不开界面。
访问Gii界面并验证登录
启动Web服务后,在浏览器地址栏输入:http://localhost/your-project/index.php?r=gii 或启用URL美化后的路径:http://localhost/your-project/gii
若看到密码输入框,说明模块已加载但需认证;输入配置中设定的 password(Yii1)或直接进入(Yii2默认无密码,靠IP过滤防护)。
若返回 404 错误,请检查 urlManager 是否已配置 'gii' => 'gii' 规则;若返回 403,请立即核对 allowedIPs 数组内容与本机实际IP是否匹配。
生成模型类(Model Generator)
第一步:点击首页的 Model Generator 链接。
第二步:填写 Table Name(如 user),系统会自动推导出 Model Class(如 User)和命名空间。
第三步:点击 Preview,页面列出将生成的文件路径(如 @app/models/User.php);点击文件名可查看预生成代码。
第四步:若目标文件已存在,勾选对应行的 overwrite 复选框;否则直接点击 Generate。
注意:生成后务必人工检查 rules() 方法——Gii仅按数据库字段类型生成基础验证,【NOT NULL 约束 ≠ 业务必填,VARCHAR(255) ≠ 允许任意长度输入】,漏补会导致表单提交失败或数据异常。
生成完整CRUD功能
选择首页的 CRUD Generator,按顺序填写:
① Model Class:输入上一步生成的完整类名,含命名空间(如 app\models\User);
② Search Model Class:通常自动生成为 UserSearch,保持默认即可;
③ Controller Class:如 app\controllers\UserController;
④ View Path:建议用 @app/views/user,确保路径存在且可写。
点击 Preview 后,你会看到至少7个待生成文件:控制器、搜索模型、5个视图(index、view、create、update、_form)。
确认无误后点击 Generate,Gii会在控制台输出生成日志,并高亮显示被覆盖的文件(如有)。


















