`
dcj3sjt126com
  • 浏览: 1868108 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

[入门]用 Gii 生成代码

    博客分类:
  • 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

补充: 如果你通过本机以外的机器访问 Gii,请求会被出于安全原因拒绝。你可以配置 Gii 为其添加允许访问的 IP 地址:

'gii' => [
    'class' => 'yii\gii\Module',
    'allowedIPs' => ['127.0.0.1', '::1', '192.168.0.*', '192.168.178.20'] // 按需调整这里
],

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

CRUD 生成器

然后点击 “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 章节了解更多内容。

总结 

本章学习了如何使用 Gii 去生成为数据表中数据实现完整 CRUD 功能的代码。

分享到:
评论

相关推荐

    Yii2中文手册(中文教程完整版)

    已定稿 用 Gii 生成代码 已定稿 更上一层楼 应用结构 已定稿 结构概述 已定稿 入口脚本 已定稿 应用 已定稿 应用组件 已定稿 控制器(Controller) 已定稿 视图(View) 已定稿 模型(Model) 已定稿 过滤器 已定稿 ...

    Yii框架快速入门

    Yii提供Gii工具,可以自动生成模型代码,大大提高了开发效率。 2. View:视图负责展示数据,通常包含HTML和PHP代码,用于渲染用户界面。 3. Controller:控制器处理用户请求,调用模型进行业务处理,并将结果传递给...

    Yii快速入门教程(完全整理)

    Yii提供了Gii工具,可以自动生成模型、控制器和视图,简化CRUD操作。通过ActiveRecord,你可以方便地进行数据库查询,如创建、读取、更新和删除记录。同时,Yii支持多种数据库,如MySQL、PostgreSQL等。 5. **表单...

    Yii快速入门教程+2.0中文手册

    Gii是Yii提供的代码生成工具,可以帮助快速生成常见的CRUD操作、模型、控制器和视图文件,提高开发效率。 7. **数据库操作** Yii的ActiveRecord提供了方便的数据操作接口,可以轻松进行数据库查询、插入、更新和...

    PHP的Yii框架入门使用教程

    接下来,你可以进一步学习如何自定义控制器、模型和视图,如何使用Gii生成器创建代码,以及如何利用Yii的组件系统进行扩展和优化。Yii框架的强大之处在于其灵活性和效率,使得开发者可以高效地构建复杂和高性能的Web...

    yii-guide-2.0-zh-cn.pdf

    7. **生成代码**:讨论使用Gii工具自动生成代码,如模型、控制器和视图,以提高开发效率。 8. **更上一层楼**:涵盖更高级的主题,如性能优化、安全性和扩展性,以及如何利用Yii的组件化特性来构建复杂的应用。 9. *...

    yii框架快速入门--(中文版)并附redmine-wiki对yii的解释

    8. **命令行工具**:Yii提供了一个强大的Gii工具,可自动生成代码,如模型、控制器、迁移等,加速开发进程。 9. **性能优化**:Yii通过缓存、优化查询和自动压缩资源文件等方式,确保应用的运行效率。 10. **扩展...

    Yii_权威指南

    - **自动代码生成**:使用 Gii 自动生成代码。 - **URL 管理**:配置和使用 URL 规则。 - **验证和授权**:实现数据验证和用户权限管理。 - **主题**:定义应用程序的主题样式。 #### 七、进阶话题 - **日志**:...

    Yii2中文手册(完整版)

    在数据库支持上,Yii2支持多种数据库系统,如MySQL、PostgreSQL、SQLite等,手册会详细讲解如何配置数据库连接,以及如何使用Gii代码生成工具快速生成模型、控制器和视图文件。此外,还会有ActiveRecord的使用示例,...

    yii框架中文文档、yii中文手册教程

    8. **Gii代码生成工具**:利用内置的代码生成工具自动生成模型、控制器和视图代码,提高开发效率。 9. **表单处理**:如何创建和验证用户输入的数据。 10. **安全**:包括认证、授权、CSRF防护和密码哈希等,确保...

    Yii 2.0 开发记录草稿本

    在设计修改前端和后端界面时,可以利用Yii 2.0提供的gii工具来快速生成数据库表格和一些基本的CRUD(创建、读取、更新、删除)代码。这一部分还可以包括加入用户登录注册功能,以及网站发布和日常维护等步骤。 在第...

    mazoo:仅一个定制的DurandalYii2入门应用程序

    1. **代码生成工具**:Gii是一个强大的代码生成工具,可以自动生成CRUD(创建、读取、更新、删除)操作和其他常见的数据库交互代码。 2. **对象关系映射(ORM)**:ActiveRecord允许开发者以面向对象的方式操作...

    yii2中文手册-官方.pdf

    12. **代码生成**: 描述了如何利用Gii代码生成工具自动生成模型、CRUD等。 13. **扩展**: 讲解了如何安装和使用扩展来增强Yii2应用功能。 ### Yii2高级知识点 1. **事件和行为**: 介绍了在Yii2中如何使用事件和...

    Yii PHP 框架BLOG开发手册

    - **自动生成模型类:** 使用 Gii 自动生成对应数据库表的模型类。 - **模型类基础配置:** 如何设置模型的基本属性和验证规则。 - **2.2.3 实现 CRUD 操作 (Implementing CRUD Operations)** - **创建操作:** ...

Global site tag (gtag.js) - Google Analytics