php的yii框架开发总结3
利用yii里面的gii工具可以很容易的自动创建数据表相应的的CURD操作的基于MVC的文件:
首先,打开:自己网站/protected/config/main.php文件
'modules'=>array(
'gii'=>array(
'class'=>'system.gii.GiiModule',
'password'=>'这儿设置一个密码',
),
),
浏览器打开http://localhost:8088/yii/mysite/index.php?r=gii 当然路径要根据自己的网站目录改正。
如果url规则改过,也可能是:http://localhost:8088/yii/mysite/index.php/gii
登陆之后界面:![]()
点击 Model Generator 链接开始使用模型创建工具。
在 Model Generator 页中,在Table Name一栏输入 tbl_user (用户表的名字),然后按下 Preview 按钮。一个预览表将显示在我们面前。我们可以点击表格中的链接来预览要生成的代码。如果一切OK,我们可以按下 Generate 按钮来生成代码并将其保存在一个文件中。
提示: 我们还可以在 Table Name 栏中输入一个星号 '*' 。这样就可以通过一次点击就对 所有的 数据表生成相应的模型类。
通过这一步,我们就有了如下新创建的文件:
models/User.php包含了继承自 CActiveRecord 的User类,可用于访问tbl_user数据表;
实现 CRUD 操作
模型类建好之后,我们就可以使用 Crud Generator 来创建为这些模型实现CRUD操作的代码了。我们将对 Post模型执行此操作。
在 Crud Generator 页面中,Model Class 一栏输入 Post (就是我们刚创建的 Post 模型的名字) ,然后按下 Preview 按钮。我们会看到有很多文件将被创建。按下 Generate 按钮来创建它们。
让我们看一下通过CRUD生成器生成的这些文件。所有的文件都创建在了 /wwwroot/blog/protected 目录中。为方便起见,我们把它们分组为控制器(Controller)文件和 视图(View)文件:
控制器文件:
controllers/PostController.php包含负责所有CRUD操作的PostController控制器类;
视图文件:
views/post/create.php一个视图文件,用于显示创建新日志的 HTML 表单;views/post/update.php一个视图文件,用于显示更新日志的 HTML 表单;views/post/view.php一个视图文件,用于显示一篇日志的详情;views/post/index.php一个视图文件,用于显示日志列表;views/post/admin.php一个视图文件,用于在一个带有管理员命令的表格中显示日志;views/post/_form.php一个插入views/post/create.php和views/post/update.php的局部视图文件。它显示用于收集日志信息的HTML表单;views/post/_view.php一个在views/post/index.php中使用的局部视图文件。它显示单篇日志的摘要信息;views/post/_search.php一个在views/post/admin.php中使用的局部视图文件。它显示一个搜索表单;现在我们可以访问:http://www.example.com/blog/index.php?r=post
为了更好地理解这些文件是如何使用的,我们在下面列出了当显示一个日报列表时发生的工作流程。
- 用户请求访问这个 URL
http://www.example.com/mysite/index.php?r=post; - 入口脚本 被Web服务器执行,它创建并实例化了一个 应用实例来处理此请求;
- 应用创建并执行了
PostController实例; PostController实例通过调用它的actionIndex()方法执行了index动作。注意,如果用户没有在URL中指定执行一个动作,则index就是默认的动作;actionIndex()方法查询数据库,带回最新的日志列表;actionIndex()方法使用日志数据渲染index视图。
- 用户请求访问这个 URL
php的yii框架开发总结3的更多相关文章
- YII框架开发一个项目的通用目录结构
YII框架开发一个项目的通用目录结构: 3 testdrive/ 4 index.php Web 应用入口脚本文件 5 assets/ 包含公开的资源文件 6 css/ 包含 CSS 文件 7 ima ...
- PHP Yii框架开发——组织架构网站重构
最近一段时间在维护公司的组织架构网站(Org),旧版网站只是用了xampp简单搭建了一套环境部署在了windows机器上,代码结构相对简单. 整个架构如下: 整个架构没有用到复杂的结构,class里放 ...
- php的yii框架开发总结1
最近用php的yii框架写了一个小的demo,虽然不复杂,但是也学习了很多东西,现在总结一下. 项目需求:为几个教研室写一个日报系统,每个人每天写日报,并且系统有自动实现发邮件功能. 额外要求:1.人 ...
- php的yii框架开发总结2
开发流程:1.用yii创建网站目录,当时用命令行创建时遇到了问题,试了很久才找到原因:我的原因是在yii/framework/yiic.bat这个文件中的一条语句: if "%PHP_COM ...
- php的yii框架开发总结9
这一篇讲解怎么实现的自动发邮件的功能,我在网上查了很多资料,很多都是用定时检测来实现的,我试过,效率太低,网站也卡了. 后来就写了一个.bat文件来实现刷新页面,用了windows的定时任务定时来运行 ...
- php的yii框架开发总结10
1.CActiveForm是Chtml类的封装,但是它有数据验证的功能,有三种方式:服务器端.客户端.Ajax数据验证. 服务器端验证:当整个表单页面被提交后,在服务器端 进行验证.如果存在任何验证错 ...
- php的yii框架开发总结8
EMailer是一个简单的封装PHPMailer类.利用这个扩展可以实现发邮件的功能. 下载地址:http://www.yiiframework.com/extension/mailer/ 下载解压把 ...
- php的yii框架开发总结7
protected\config\main.php是整个网站中很重要的一个文件,引用文件,连接数据库,默认页面等都是在这里设置: 'import'=>array( 'application.mo ...
- php的yii框架开发总结6
MVC中的Controller部分,所有的controller类都是继承自Controller基类,基类里面包含actionAdmin-管理员,actionIndex-一般默认显示,actionVie ...
- php的yii框架开发总结5
MVC架构之model类: 我的日报系统用到的数据表:tbl_dailyreport表 其中anthor_id是外键,对应tbl_user数据表的主键id,下面是tbl_user表 class Dai ...
随机推荐
- apache 日志分割
Window apache 全局设置日志分割 apache [ httpd.conf ] 配置文件 开启日志模块:LoadModule log_config_module modules/mod ...
- P2903 [USACO08MAR]麻烦的干草打包机The Loathesome Hay Baler
传送门 题目问的是从出发点一直跑到终点的一条链上所有齿轮的速度和 其他的不用考虑 直接搜就好了 注意求的是绝对值之和,不是和的绝对值,所以不用考虑方向问题 注意 N<=1050 数组不要只开10 ...
- Go语言基础之10--面向对象编程2之方法
一.方法的定义 之前我们学习了结构体(struct),其仅仅是对数据的封装,并没有行为方法,还不是一个完全的面向对象的思路,所以现在我们来学习在结构体的基础上如何去定义一个方法.结构体(类)+方法=完 ...
- python3+selenium获取列表某一列的值
python3+selenium获取列表某一列的值 我们在坐自动化测试时,我们可能不想单纯的想验证一个选项卡,我们让脚本随机选择一个选项进行接下来的操作.例如我们想获取列表某一列的某一个数据(随机的) ...
- CentOS 同时忘记用户名和密码
开机时,狂按Esc 光标选中之前开机常用的那个系统,按下e进入编辑模式 按'↑'和'↓'在该页面找到quiet,在它后面加上single 按Ctrl + x进入到单用户模式 再次进入后,系统会提示你输 ...
- Robotframework测试相关库
一. 官网地址 http://robotframework.org/#libraries 二.几类测试所用到的常用库初步整理 1. UI自动化测试 Selenium2Library.BuiltIn(自 ...
- 查询pthread库的函数
首先需要先安装pthread看的手册文档,然后用如下命令查询: man -k pthread
- python单元测试框架-unittest(二)之断言
断言内容是自动化脚本的重要内容,正确设置断言以后才能帮助我们判断测试用例执行结果. 断言方法 assertEqual(a, b) 判断a==b assertNotEqual(a, b) 判断a!=b ...
- SteamVR手柄震动控制实现
SteamVR手柄震动控制实现 public class handCtrl : MonoBehaviour { public SteamVR_TrackedObject _TrackedObject; ...
- OpenStack Weekly Rank 2015.08.17
Module Reviews Drafted Blueprints Completed Blueprints Filed Bugs Resolved Bugs Cinder 5 1 1 6 13 Sw ...