yii2使用Gii生成代码

本章节将介绍如何使用 Gii 去自动生成 Web 站点常用功能的代码。使用 Gii 生成代码非常简单,只要按照 Gii 页面上的介绍输入正确的信息即可。

贯穿本章节,你将会学到:

  • 在你的应用中开启 Gii
  • 使用 Gii 去生成活动记录类
  • 使用 Gii 去生成数据表操作的增查改删(CRUD)代码
  • 自定义 Gii 生成的代码

开始 Gii

Gii 是 Yii 中的一个模块。可以通过配置应用的 [[yii\base\Application::modules|modules]] 属性开启它。通常来讲在 config/web.php 文件中会有以下配置代码:

$config = [ ... ];

if (YII_ENV_DEV) {
    $config['bootstrap'][] = 'gii';
    $config['modules']['gii'] = 'yii\gii\Module';
}

这段配置的意思是如果当前是开发环境,应用会包含 gii 模块,模块类是 [[yii\gii\Module]]。

如果你检查应用的入口脚本 web/index.php,将看到这行代码将 YII_ENV_DEV 设为
true:

defined('YII_ENV') or define('YII_ENV', 'dev');

代码设置应用处于开发模式下,按照上面的配置会打开 Gii 模块。你可以直接通过 URL 访问 Gii:

http://hostname/index.php?r=gii

生成活动记录类

选择 “Model Generator” (点击 Gii 首页的链接)去生成活动记录类。并像这样填写表单:

  • Table Name: country
  • Model Class: Country

然后点击 “Preview” 按钮。你会看到 models/Country.php 被列在将要生成的文件列表中。可以点击文件名预览内容。

如果你已经创建过同样的文件,使用 Gii 可以覆写它,点击文件名旁边的 diff 能查看现有文件与将要生成的文件的内容区别。

想要覆写已存在文件,选中 “overwrite” 下的复选框然后点击 “Generator”。如果是新文件,只点击 “Generator” 就好。

接下来你会看到一个包含已生成文件的说明页面。如果生成过程中覆写过文件,还会有一条信息说明代码是重新生成覆盖的。

生成 CRUD 代码

CRUD 代表增,查,改,删操作,这是绝大多数 Web 站点常用的数据处理方式。选择 Gii 中的 “CRUD Generator” (点击 Gii 首页的链接)去创建 CRUD 功能。之前的 “country” 例子需要像这样填写表单:

  • Model Class: app\models\Country
  • Search Model Class: app\models\CountrySearch
  • Controller Class: app\controllers\CountryController

然后点击 “Preview” 按钮。你会看到下述将要生成的文件列表。

[[NEED THE IMAGE HERE / 等待官方补充图片]]

如果你之前创建过 controllers/CountryController.php 和 views/country/index.php 文件(在指南的使用数据库小节),选中
“overwrite” 下的复选框覆写它们(之前的文件没能全部支持 CRUD)。

尝试下

用浏览器访问下面的 URL 查看生成代码的运行:

http://hostname/index.php?r=country/index

可以看到一个栅格显示着从数据表中获取的国家数据。支持在列头对数据进行排序,输入筛选条件进行筛选。

可以浏览详情,编辑,或删除栅格中的每个国家。还可以点击栅格上方的 “Create Country”按钮通过表单创建新国家。

下面列出由 Gii 生成的文件,以便你研习功能和实现,或修改它们。

  • 控制器:controllers/CountryController.php
  • 模型:models/Country.php 和 models/CountrySearch.php
  • 视图:views/country/*.php
补充:Gii 被设计成高度可定制和可扩展的代码生成工具。使用它可以大幅提高应用开发速度。请参考 Gii 小节了解更多内容。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-12-24 17:42:00

yii2使用Gii生成代码的相关文章

Yii2 自定义Gii生成代码模板

我们使用一个例子来介绍如何定制代码模板.假设我们想要定制由 model 生成器生成的代码. 我们首先创建一个名为 protected/gii/model/templates/customer 的目录.这里的model意味着我们将要 override 默认的 model 生成器.templates/customer意味着我们将增加一个新的代码模板集名为customer.复制文件 framework/gii/generators/model/templates/default/model.php 到

关于yii2 试用gii生成的代码,驼峰命名的控制器使用

最后使用的链接 http://www.demo.com/index.php?r=system-admin 对照的文件 新修改 http://www.demo.com/index.php?r=system/admin 对应的文件路径

YII2框架 Gii生成CURD 的问题

今天在学习YII2 creating Module 过程当中 遇到问题创建Module后  然后添加CRUD过程里 VIEW PATH路径问题 导致了 无法在指定路径生成CRUD文件 文件全部生成到了WEB目录下   解决方案是 @app\views\companies  在指定路径前加@app\ 然后继续填写好路径 就可以了.!

PHP.28-TP框架商城应用实例-后台4-使用Gii生成品牌表的代码

Gii安装[GII适用于商城项目] 将Gii文件夹复到application 是,访问http://xx.com/index.php/gii Gii规则[Gii使用规则与建表规则密切相关] 1.建表字段必须有中文名,则Gii在生成代码时才能识别某字段的中文名是什么: 2.某字段验证规则不能为空:设置该建表字段为not null:一般所有字段都为not null,若不希望生成验证规则,则加上默认值default(默认值可为空): 3.生成上传图片代码:字段名中需包含logo|image|pic|f

yii2中一个神奇的工具,gii生成模型,gii生成CURD视图页面

1.配置自己的虚拟主机,然后使用gii生成模型视图等 http://admin.zstp.com/index.php?r=gii 2.gii组件介绍 3.创建生成一个模型 4.使用gii创建CURD视图

YII2使用gii

在 config/web.php 文件中会有以下配置代码开启该模块: $config['bootstrap'][] = 'gii'; $config['modules']['gii'] = [ 'class' => 'yii\gii\Module', // uncomment the following to add your IP if you are not connecting from localhost. //'allowedIPs' => ['127.0.0.1', '::1'],

Yii2 使用 faker 生成假数据

Yii2使用 faker 生成假数据. 1. config\console.php 中添加一条配置信息 'controllerMap' => [ 'fixture' => [ 'class' => 'yii\faker\FixtureController', ], ], 注意顶部,定义test测试目录的位置的代码. Yii::setAlias('@tests', dirname(__DIR__) . '/tests'); 2. 创建生成假信息的模版文件 在test目录下面依次新建unit

ThinkPHP 类似Yii的Gii生成Model的功能。

ThinkPHP 类似Yii的Gii生成Model的功能.自动生成ThinkPhp 3.1 的基础模型.. 1 #!/usr/bin/env php 2 <?php 3 /** 4 * 5 * THINKPHP 基础模型生成工具 6 * 使用方法 7 * 命令行: php 本php文件 表名字 8 * 然后复制生成好的代码 9 * 10 * 11 */ 12 13 14 $host = 'localhost'; 15 $user = 'root'; 16 $pass = 'root'; 17 1

PxCook 点击设计稿即可生成代码前端,高效智能的设计研发工具,智能标注软件。

版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] PxCook 像素大厨 设计师一键拖拽上传后,可智能标注.然后程序员点击pxcp即可生成css xml swift objective-c还有NativeReact的代码了.支持画板解析.项目 字多不看的话 (走心要听: 这次3.0版本相比于之前更加高效,易用.支持 Win & Mac ,并且是支持PS和Sketch全平台. 拖拽即用和一键流的理念我想都明白它易用性的含义.不但体现在设计稿导入上,智能标注和生成代码也是一样.