Yii框架内置的Gii是一个功能强大的代码生成器,它可以根据数据库结构自动生成模型、控制器以及视图代码,帮助开发者省去大量编写重复代码的时间。无论是做后台管理系统还是快速搭建原型,Gii都能显著提升开发效率。

如何开启并访问Gii
在Yii的基础应用模板中,Gii默认已经配置好。你只需要确保应用处于开发环境,然后在浏览器中访问如下地址:
http://localhost/index.php?r=gii
如果是高级模板,通常地址为 http://localhost/frontend/web/index.php?r=gii 或通过对应的后端入口访问。若配置文件 config/web.php 中开启了如下内容,即可正常使用:
$config['modules']['gii'] = [
'class' => 'yiigiiModule',
'allowedIPs' => ['127.0.0.1', '::1'],
];
使用Gii生成模型
点击Gii首页的 Model Generator,按提示填写表名和模型类名:
- Table Name:填写数据库表名,例如
user - Model Class:填写模型类名,例如
User - Namespace:一般保持默认
appmodels
填写完成后点击 Preview 查看将要生成的代码,再点击 Generate 即可。生成的模型文件位于 models/User.php。
使用Gii生成CRUD
CRUD Generator 可以基于已有模型生成控制器和视图,实现数据的增删改查。主要参数如下:
| 参数 | 说明 |
|---|---|
| Model Class | 已生成的模型类,如 appmodelsUser |
| Controller ID | 控制器ID,如 user |
| View Path | 视图文件路径,默认即可 |
生成后访问 http://localhost/index.php?r=user 就能看到用户数据的管理页面。
简单示例:自定义生成后的控制器片段
Gii生成的控制器本身已包含标准动作,你也可以参考其结构写自己的逻辑:
<?php
namespace appcontrollers;
use appmodelsUser;
use yiiwebController;
class UserController extends Controller
{
// Gii生成的actionIndex用于列表展示
public function actionIndex()
{
$data = User::find()->all();
return $this->render('index', [
'data' => $data,
]);
}
}
用Gii生成REST接口
如果需要写API,可以使用 Api Generator(部分扩展提供)或基于模型自行结合 yiirestActiveController。Gii的 Model Generator 同样适用于接口模型层,保证数据结构一致。
注意事项
Gii仅建议在开发环境使用,生产环境务必关闭或限制IP,避免代码结构泄露。
另外,Gii生成的代码是基础模板,复杂业务仍需手动调整。合理利用 rules()、attributeLabels() 等方法来完善模型和验证逻辑,才能让系统更稳健。
总之,熟悉Yii框架的Gii代码生成器怎么用,是高效开发的重要一步。从模型到CRUD,再到配合REST开发,Gii都能帮你把机械劳动降到最低。