访问 gii
首先保证初始化的时候选择的是开发模式,第二如果你是在服务器上,还要去设置一下ip权限
修改 /frontend/config/main-local.php 找到如下部分加上那句 allowIps 的配置。
if (!YII_ENV_TEST) { // configuration adjustments for 'dev' environment $config['bootstrap'][] = 'debug'; $config['modules']['debug'] = [ 'class' => 'yii\debug\Module', ]; $config['bootstrap'][] = 'gii'; $config['modules']['gii'] = [ 'class' => 'yii\gii\Module', 'allowedIPs' => ['127.0.0.1', '::1', '*'], ];
默认只能本机(ip)开发下才能访问,这里我们放开Ip限制
这样我们就能同通过网址xxxx/index.php?r=gii 来进行访问
这里解释一下:这个根据路由这一章但是我们找不到gii的controller,它是由Yii组件里面的模块(modules),设置在配置文件里面的,modules相当于子项目里面可以有子的mvc,路径访问起来就是 r=moduleId/ControllerId/ActionId
我们常用的是 Model Generator(对照数据库表来生成) 和 Curd Generator(根据生成的数据模型来生成CRUD操作)
先看模型生成,首先在配置好的数据库里建一张表 然后点击 Model Generator
这时候去看,生成的这个模型文件,其实和我们上章讲的模型差不多,但是有多了表明绑定,还有继承是ActiveRecord,封装了很多数据库操作有很多不需要用sql就可以操作数据库很方便,如果数据库表名用 * 表示,会生成配置的该库的所有表格的模型文件。
CRUD Generator
CRUD 指的是 Create, Read, Update, Delete 操作
这一步生成后,就会把控制器和 视图文件都生成,然后按照路由规则就可以访问,刚才生成的一个模型(数据库表)的 列表 ,详情,新增,编辑,删除。
如果大家要搜索呢,也可以填一个搜索模型名称,放在模型同目录下。
其他生成器,初学者很少用,就不讲了。
总结:
Gii 并不是一个非用不可的工具,但是绝对是一个能帮你规范代码,提高生产效率的工具。Gii 并不提供合并修改的功能,所以当你后期修改表结构的时候,方法一是你自己手动去修改对应的 Model 文件的几处代码。随之而来你的是你需要对Yii2自带的那些组件要熟悉起来,譬如ActiveForm(生成表单,表单校验),Girdview(几行代码就把列表,操作,分页都搞定了),以及Yii的数据库操作 ActiveRecord, 封装的请求Request,已经视图里面的资源配置 Assset....