利用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 包含了继承自 CActiveRecordUser 类,可用于访问 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.phpviews/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

      为了更好地理解这些文件是如何使用的,我们在下面列出了当显示一个日报列表时发生的工作流程。

      1. 用户请求访问这个 URL http://www.example.com/mysite/index.php?r=post;
      2. 入口脚本 被Web服务器执行,它创建并实例化了一个 应用实例来处理此请求;
      3. 应用创建并执行了 PostController 实例;
      4. PostController 实例通过调用它的 actionIndex() 方法执行了 index 动作。注意,如果用户没有在URL中指定执行一个动作,则 index 就是默认的动作;
      5. actionIndex() 方法查询数据库,带回最新的日志列表;
      6. actionIndex() 方法使用日志数据渲染 index 视图。

php的yii框架开发总结3的更多相关文章

  1. YII框架开发一个项目的通用目录结构

    YII框架开发一个项目的通用目录结构: 3 testdrive/ 4 index.php Web 应用入口脚本文件 5 assets/ 包含公开的资源文件 6 css/ 包含 CSS 文件 7 ima ...

  2. PHP Yii框架开发——组织架构网站重构

    最近一段时间在维护公司的组织架构网站(Org),旧版网站只是用了xampp简单搭建了一套环境部署在了windows机器上,代码结构相对简单. 整个架构如下: 整个架构没有用到复杂的结构,class里放 ...

  3. php的yii框架开发总结1

    最近用php的yii框架写了一个小的demo,虽然不复杂,但是也学习了很多东西,现在总结一下. 项目需求:为几个教研室写一个日报系统,每个人每天写日报,并且系统有自动实现发邮件功能. 额外要求:1.人 ...

  4. php的yii框架开发总结2

    开发流程:1.用yii创建网站目录,当时用命令行创建时遇到了问题,试了很久才找到原因:我的原因是在yii/framework/yiic.bat这个文件中的一条语句: if "%PHP_COM ...

  5. php的yii框架开发总结9

    这一篇讲解怎么实现的自动发邮件的功能,我在网上查了很多资料,很多都是用定时检测来实现的,我试过,效率太低,网站也卡了. 后来就写了一个.bat文件来实现刷新页面,用了windows的定时任务定时来运行 ...

  6. php的yii框架开发总结10

    1.CActiveForm是Chtml类的封装,但是它有数据验证的功能,有三种方式:服务器端.客户端.Ajax数据验证. 服务器端验证:当整个表单页面被提交后,在服务器端 进行验证.如果存在任何验证错 ...

  7. php的yii框架开发总结8

    EMailer是一个简单的封装PHPMailer类.利用这个扩展可以实现发邮件的功能. 下载地址:http://www.yiiframework.com/extension/mailer/ 下载解压把 ...

  8. php的yii框架开发总结7

    protected\config\main.php是整个网站中很重要的一个文件,引用文件,连接数据库,默认页面等都是在这里设置: 'import'=>array( 'application.mo ...

  9. php的yii框架开发总结6

    MVC中的Controller部分,所有的controller类都是继承自Controller基类,基类里面包含actionAdmin-管理员,actionIndex-一般默认显示,actionVie ...

  10. php的yii框架开发总结5

    MVC架构之model类: 我的日报系统用到的数据表:tbl_dailyreport表 其中anthor_id是外键,对应tbl_user数据表的主键id,下面是tbl_user表 class Dai ...

随机推荐

  1. window下安装git与git使用

    有的eclipse已经自带了Git了,就不用安装了.如果,想重新安装,可以先卸载GIT,卸载 不同eclipse卸载不一样: 1.在Eclipse中依次点击菜单"Help"-> ...

  2. Mybatis学习笔记(六) —— 动态sql

    通过mybatis提供的各种标签方法实现动态拼接sql. 需求:根据性别和名字查询用户 查询sql: SELECT id, username, birthday, sex, address FROM ...

  3. P1445 [Violet]樱花

    传送门 看到题目就要开始愉快地推式子 原式 $\frac{1}{x}+\frac{1}{y}=\frac{1}{n!}$ $\rightarrow \frac{x+y}{xy}=\frac{1}{n! ...

  4. day17 isinstance type issubclass 反射

    1. issubclass,type,isinstance 1.issubclass 判断xxx是否yyy的子类 例: class Foo: pass class Bar(Foo): pass cla ...

  5. Linux进程控制理论及几种常见进程间通信机制

    1. Linux进程控制理论 ① 进程是一个具有一定独立功能的程序的一次运行活动(动态性.并发性.独立性.异步性). 进程的四要素: (1)有一段程序供其执行(不一定是一个进程所专有的),就像一场戏必 ...

  6. python3 发送邮件添加附件

    from email.header import Headerfrom email.mime.application import MIMEApplicationfrom email.mime.mul ...

  7. MSF利用ms17-010漏洞过程记录

    1.使用网上以上一个监测工具,扫描出存在ms17-010的主机地址 2.在kali中使用MSF进行检测,存在mf17-010漏洞 msf > use auxiliary/scanner/smb/ ...

  8. 第五章:引用类型(一)-Object和Array

    引用类型 引用类型的值(对象)是引用类型的一个实例 引用类型是一种数据结构,用于将数据与功能组织在一起 也常被称为类, Object 对象的两种创建方式 使用new操作符 对象字面量表示法 Array ...

  9. Linux安装mysql记录 重置密码

    重置密码解决MySQL for Linux错误 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using passwor ...

  10. Linux虚拟机无法通过宿主机上网

    解决方法 1.Windows: 确保相关服务已经启动 2.Linux: 确保相关服务已经启动 1) 确认Linux的IP地址和Windows在同一个网段: 若Windows给虚拟机分配的IP地址如下: ...