Yii 框架使用Gii生成代码操作示例

本文实例讲述了Yii 框架使用Gii生成代码操作。分享给大家供大家参考,具体如下:

开始 Gii

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

$config = [ ... ];

if (YII_ENV_DEV) {
  $config['bootstrap'][] = 'gii';
  $config['modules']['gii'] = [
    'class' => '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'] // 按需调整这里
],

生成活动记录类

选择 “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” 按钮。你会看到下述将要生成的文件列表。

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

试运行

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

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

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

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

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

  • 控制器:controllers/CountryController.php
  • 模型:models/Country.phpmodels/CountrySearch.php
  • 视图:views/country/*.php

更多关于Yii相关内容感兴趣的读者可查看本站专题:《Yii框架入门及常用技巧总结》、《php优秀开发框架总结》、《smarty模板入门基础教程》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。

(0)

相关推荐

  • Mybatis generator如何自动生成代码

    开发项目的时候,表很多,是不可能一点点的自己去写xml ,dao文件的,这里就需要用到代码的自动生成工具了. 第一步:导入jar包,当然,这之前,基本环境,像mybatis,数据库之类的都得搭建好. <dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.3.2<

  • 详解在idea 中使用Mybatis Generator逆向工程生成代码

    通过MAVEN完成 Mybatis 逆向工程 1. POM文件中添加插件 在 pom 文件的build 标签中 添加 plugin 插件和 数据库连接 jdbc 的依赖. <build> <plugins> <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <

  • Mybatis generator自动生成代码插件实例解析

    mybatis自动生成代码(实体类.Dao接口等)是很成熟的了,就是使用mybatis-generator插件. 它是一个开源的插件,使用maven构建最好,可以很方便的执行 插件官方简介: http://www.mybatis.org/generator/index.html 插件的GitHub地址: https://github.com/mybatis/generator 如何使用mybatis-generator插件呢?只需要三步: 1.修改pom.xml配置文件 网上大部分说法都要添加依

  • MyBatis-plus+达梦数据库实现自动生成代码的示例

    先说点什么 mybatis-plus是一款增强版的mybatis,功能强大,可以很大程度的简化开发. 然而达梦数据库比较小众,虽然官方说mybatis-plus支持达梦数据库,但是使用起来遇到了很多问题. 这篇文章主要讲如何使用mybatis-plus访问达梦数据库,并使用逆向工程自动生成代码. =.=对了 这是个使用spring boot的项目. (配置)POM文件,引入所需要的依赖 <dependencies> <dependency> <groupId>org.s

  • 如何使用mybatis-generator自动生成代码

    这篇文章主要介绍了如何使用mybatis-generator自动生成代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.在pom文件中添加mybatis-generator插件 <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> &l

  • IDEA的崛起自己定义快捷生成代码块的详细步骤

    话不多说,使用过IDEA中快捷代码的同学应该都会用到 sout,以及表达式.sout 然后就会生成如下的代码 那么如果自己定义这种快捷生成代码的方法呢? 例如我想输入trylock就能自动生成如下代码 .lock(); try { } catch (Exception e) { e.printStackTrace(); } finally { .unlock(); } 第一种 或者表达式.trylock生成 表达式.lock(); try { } catch (Exception e) { e.

  • Spring Boot中使用IntelliJ IDEA插件EasyCode一键生成代码详细方法

    今天为小伙伴们介绍一款 IntelliJ IDEA 上的免费开源插件,叫做 EasyCode,可以方便的根据数据库生成相应的代码. EasyCode 是基于 IntelliJ IDEA 开发的代码生成插件,支持自定义任意模板(Java,html,js,xml):只要是与数据库相关的代码都可以通过自定义模板来生成:支持数据库类型与 java 类型映射关系配置:支持同时生成生成多张表的代码,张表有独立的配置信息,完全的个性化定义,规则由你设置. 我自己也稍微体验了一把,还是蛮方便的. 1.安装 首先

  • 使用MyBatisPlus自动生成代码后tomcat运行报错的问题及解决方法

    自动生成的代码 报错 解决办法:把自动xml文件中自动生成的二级缓存注释掉 总结 到此这篇关于使用MyBatisPlus自动生成代码后tomcat运行报错的问题及解决方法的文章就介绍到这了,更多相关MyBatisPlus自动生成代码tomcat运行报错内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

  • 一个能生成精美代码图片的工具Carbon!让看代码成为一种享受

    一.前言 carbon,碳棒的意思.功能非常强大,操作很方便,简直好用极了!有哪些功能特点呢?如下所示: 支持市面上几乎所有的语言代码风格特点 可以自己选择生成图片的代码风格 可以选择生成什么语言的代码风格 还支持自定义选择背景色 二.实践 Carbon是开源免费的代码图片生成器,可以帮助我们很方便地生成漂亮的代码图片.操作非常简单,直接将代码粘贴在代码区,然后设置想要的格式即可. GitHub地址:https://github.com/carbon-app/carbon 在线网址:https:

  • Yii 框架使用Gii生成代码操作示例

    本文实例讲述了Yii 框架使用Gii生成代码操作.分享给大家供大家参考,具体如下: 开始 Gii Gii 是 Yii 中的一个模块. 可以通过配置应用的 modules 属性开启它.通常来讲在 config/web.php 文件中会有以下配置代码: $config = [ ... ]; if (YII_ENV_DEV) { $config['bootstrap'][] = 'gii'; $config['modules']['gii'] = [ 'class' => 'yii\gii\Modul

  • Yii 框架应用(Applications)操作实例详解

    本文实例讲述了Yii 框架应用(Applications)操作.分享给大家供大家参考,具体如下: 应用主体 ¶ 应用主体是管理 Yii 应用系统整体结构和生命周期的对象. 每个Yii应用系统只能包含一个应用主体,应用主体在 入口脚本 中创建并能通过表达式 \Yii::$app 全局范围内访问. 信息: 当我们说"一个应用",它可能是一个应用主体对象,也可能是一个应用系统, 是根据上下文来决定[译:中文为避免歧义,Application翻译为应用主体]. Yii有两种应用主体: 网页应用

  • mybatis-plus自动生成代码的示例代码

    一.介绍 本教程将介绍如何使用 mybatis-plus 工具自动给我们生成 Controller.Service.Entity.Mapper.Mapper.xml 层代码 要求: ① 生成的Controller类,需要继承 BaseController ② 生成的Entity 类,需要继承 BaseEntity ③ 生成的 Service,默认名称下是以 I 开头的接口, 在生成Service层代码中需要把这个 I 去掉 二.实现步骤 ① 在数据库中创建好 数据库 与 要生成代码对应的表 这里

  • mybatis plus自动生成代码的示例代码

    写一个简单的mybatis plus插件自动生成代码的例子 pom.xml 添加配置 <!-- mybatis plus 插件--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.5.1</version> </dependency>

  • ThinkPHP5.0框架使用build 自动生成模块操作示例

    本文实例讲述了ThinkPHP5.0框架使用build 自动生成模块操作.分享给大家供大家参考,具体如下: 提示: 首先,下载的完整框架或者 Composer 运行创建命令生成的框架中,build.php 文件默认存放于根目录下. 需要复制 build.php 文件到 application 目录,并对该文件进行修改,举例如下: return [ // 生成应用公共文件 '__file__' => ['common.php', 'config.php', 'database.php'], //

  • Yii 框架使用数据库(databases)的方法示例

    本文实例讲述了Yii 框架使用数据库(databases)的方法.分享给大家供大家参考,具体如下: 配置数据库连接 ¶ 开始之前,请确保你已经安装了 PHP PDO 扩展和你所使用的数据库的 PDO 驱动(例如 MySQL 的 pdo_mysql). 对于使用关系型数据库来讲,这是基本要求. 驱动和扩展安装可用后,打开 config/db.php 修改里面的配置参数对应你的数据库配置. 该文件默认包含这些内容: <?php return [ 'class' => 'yii\db\Connect

  • 使用 Swift Package 插件生成代码的示例详解

    目录 前言 是什么让我再次关注到它? 实施细节 让我们写一些代码吧 编写可执行文件 创建该插件 让我们看下结果 前言 不久前,我正在工作中开发一项新服务,该服务由 Swift Package 组成,该 Package 公开了一个类似于Decodable​协议,供我们应用程序的其余部分使用.事实上,该协议是从Decodable本身继承下来的,看起来像这样: Fetchable.swit protocol Fetchable: Decodable, Equatable {} 新的 package 将

  • ThinkPHP框架基于PDO方式连接数据库操作示例

    本文实例讲述了ThinkPHP框架基于PDO方式连接数据库操作.分享给大家供大家参考,具体如下: 一 代码 1.修改config.php文件 <?php return array( 'DB_TYPE'=> 'pdo', // 注意DSN的配置针对不同的数据库有所区别 'DB_DSN'=> 'mysql:host=localhost;dbname=db_database30', 'DB_USER'=>'root', 'DB_PWD'=>'root', 'DB_PREFIX'=&

  • Yii框架ACF(accessController)简单权限控制操作示例

    本文实例讲述了Yii框架ACF(accessController)简单权限控制操作.分享给大家供大家参考,具体如下: use yii\filters\AccessControl; class SiteController extends Controller { public function behaviors() { return [ 'access' =>[ 'class' => AccessControl::className(), 'rules' => [ [ 'allow'

随机推荐