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

来源:脚本之家  责任编辑:小易  

1、设置config/web.php[php]view plain copyconfig=[.];if(YII_ENV_DEV){config['bootstrap'][]='gii';config['modules']['gii']='yii\\gii\\Module';}默认这几行代码应该就有的。2、访问Gii如果不是访问本机环境,需要配置Gii允许的IP列表:web.php里 'db'段下加下:[php]view plain copy'modules'=>'class'=>'yii\\gii\\Module','allowedIPs'=>['127.0.0.1',':1','192.168.0.*']3、Model Generator点击下面的Start,填写表格:已经存在的提示是否覆盖:4、CRUD Generator访问:附上出处链接:www.zgxue.com防采集请勿采集本网。

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

开始 Gii

这个错误信息是说表名不正确, 你可以看一下 protected/config/main.php 里面有没有配置表前缀,如果配置了删除了就可以了 如果没有配置有可能你使用gii时填写的有错误

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

应该是权限问题(无法创建目录) 要么把整个项目可写(不推荐) 要么把目录权限付给执行php的进程用户:比如我用的是php-fpm,配置php-fpm.conf(忘记名字了,应该在php安装目录的etc目录下)中的user是nobody,你把目录的权限分给这个用户即可(你也可以分

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

找错目录了,在protected/model/文件夹下

这段配置表明,如果当前是开发环境, 应用会包含 gii 模块,模块类是 yii\gii\Module。

在相应的model中添加该方法: /** * {@inheritdoc} */ public static function tableName() { return '{{%table_name}}'; }

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

比方我用的是mysql数据库,就在php.ini中找到extension=php_mysql.dll并反注释,在下面添加一行extension=php_pdo_mysql.dll。

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程序设计有所帮助。

search中用的是activeredcord(简称 AR),可以自动生成数据库的语句。ar有自己一套的语法,具体你可以看下附件中的yii手册。数据库的配置在config/main.php中内容来自www.zgxue.com请勿采集。


  • 本文相关:
  • yii的入口文件index.php中为什么会有这两句
  • php的yii框架中yiibase入口类的扩展写法示例
  • yii入门教程之目录结构、入口文件及路由设置
  • yii 框架使用数据库(databases)的方法示例
  • yii 框架使用forms操作详解
  • yii 框架应用(applications)操作实例详解
  • yii框架应用组件用法实例分析
  • yii框架小部件(widgets)用法实例详解
  • yii框架安装简明教程
  • yii 框架入口脚本示例分析
  • 支持中文和其他编码的php截取字符串函数分享(截取中文字符串)
  • thinkphp5框架分页样式类完整示例
  • yii中srbac权限扩展模块工作原理与用法分析
  • thinkphp5框架实现基于ajax的分页功能示例
  • php curl简单采集图片生成base64编码(并附curl函数参数说明)
  • php无限遍历目录示例
  • thinkphp连接数据库及主从数据库的设置教程
  • php设计模式之职责链模式实例分析【星际争霸游戏案例】
  • yii2 中实现单点登录的方法
  • php实现多图上传和单图上传功能
  • yii用GII自动生成的MODEL里面的SEARCH函数是从哪里...
  • yii框架使用gii生成的模板如何修改 比如下图在数字...
  • yii2 gii curd生成的列表怎么修改
  • 新手,yii框架使用gii创建模型时为啥会报下面错误啊
  • Yii框架:用gii生成model时,数据表没有前缀,无法...
  • Yii2用gii创建后台代码报错
  • Yii框架:用gii生成model时,提示代码生产成功,但...
  • yii框架使用model出现 table does not exist的解决...
  • yii中使用gii生成model时报错
  • YII2 使用gii生成增删改查后,怎么去掉删除和更新按钮
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全php基础php技巧php实例php文摘php模板首页php编程php实例yii框架入门及常用技巧总结php优秀开发框架总结smarty模板入门基础教程php面向对象程序设计入门教程php字符串(string)用法总结php+mysql数据库操作入门教程php常见数据库操作技巧汇总php的yii框架中yiibase入口类的扩展写法示例yii入门教程之目录结构、入口文件及路由设置yii 框架使用数据库(databases)的方法示例yii 框架使用forms操作详解yii 框架应用(applications)操作实例详解yii框架应用组件用法实例分析yii框架小部件(widgets)用法实例详解yii框架安装简明教程yii 框架入口脚本示例分析支持中文和其他编码的php截取字符串函数分享(截取中文字符串)thinkphp5框架分页样式类完整示例yii中srbac权限扩展模块工作原理与用法分析thinkphp5框架实现基于ajax的分页功能示例php curl简单采集图片生成base64编码(并附curl函数参数说明)php无限遍历目录示例thinkphp连接数据库及主从数据库的设置教程php设计模式之职责链模式实例分析【星际争霸游戏案例】yii2 中实现单点登录的方法php实现多图上传和单图上传功能php获取数组长度的方法(有实例)微信公众平台实现获取用户openid教你如何使用php session使用php生成二维码的两种方法(带php发送get、post请求的6种方法简php中把stdclass object转array的微信公众平台网页授权获取用户基laravel框架数据库curd操作、连贯php删除数组中空值的方法介绍php从数组中删除元素的四种方法实laravel orm 关联条件查询代码浅谈lumen的自定义依赖注入php写微信公众号文章页采集方法laravel5.2实现区分前后台用户登录的方法codeigniter集成smarty的方法详解php中curl和soap方式请求服务超时问题的解codeigniter检测表单post数据的方法laravel框架查询构造器 curd操作示例php网站地图生成类示例php+fiddler抓包采集微信文章阅读数点赞数
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved