MVC模式三:模型操作数据库,之后注册变量于模板,之后用控制器的dispaly()方法显示;

一、跨控制器调用方法
因为控制器的实质是类,所以在该方法中造一个要调用的类的对象,调用他的方法;
比如,在main控制器中调用index控制器的方法,就先在main控制器中造一个indexController的对象,再调用方法;
具体实施方式:
  1. //跨控制器调用方法
  2. function method(){
  3. //原始方法
  4. //$ff=new \Home\Controller\IndexController();//绝对路径
  5. //$ff=new IndexController();//相对路径
  6. //$ff->xianshi();

  7.      //A方法
  8. //$ff=A('Index');
  9. //$ff=A("Admin/index")//A方法可以看成是原始方法的简写,注意括号内的路径写法
  10. //$ff->xianshi();
  11. //$ff是控制器的实例化对象=>具体的控制器

  12.     //R方法,直接输出
  13. echo R("index/xianshi");//注意写法
  14. }

二、模型=>操作数据库(查)

表<=>类
字段<=>成员变量
MVC模式的第三种模式:操作数据库
  1. function DB(){
  2. //操作数据库
  3. $dx=D();//第一步是建一个模型对象
  4. //三种方式=>造模型对象
  5. //$dx=new \Home\Model\UsersModel();//原始方式,必须要有原型文件,创建的对象属于子类
  6. //$dx=D("car");//D方法,不用做原型文件,创建的对象属于父类
  7. //$dx=M("car");//M方法,不用做原型文件,创建的对象属于父类
  8. //var_dump($dx);
  9.  
  10. //第二步访问数据库
  11. //方法一:连贯操作
  12. //$this->jia()->method();//连贯操作的意思$this->jia()返回$this;
  13. //$dx=$dx->select();//查询
  14. //$dx=$dx->select("c001,c002");
  15. //$dx=$dx->find("c001");//找特定的数据根据主键值找;
  16.  
  17. //where 可以加查询条件
  18. //$attr=$dx->where("brand!='b002'")->select();
  19.  
  20. //table可以切换要操作的表
  21. //$attr=$dx->table("info")->select();
  22.  
  23. //alias可以设置表的别名(知道就行)
  24. //$attr=$dx->alias("汽车")->select();
  25.  
  26. //field可以指定查询的字段
  27. //$attr=$dx->field("code,name")->select();
  28.  
  29. //order可以加排序条件
  30. //$attr=$dx->order("brand desc")->select();
  31.  
  32. //group可以分组
  33. //$attr=$dx->field("brand")->group("brand")->select();
  34.  
  35. //having可以加分组后的条件
  36. //$attr=$dx->field("brand")->group("brand")->having("count(*)>=2")->select();
  37.  
  38. //join可以连接多个表,在field里面要给字段加别名
  39. //$attr =$dx->field("Info.Code as 代号,Info.Name as 姓名,Sex as 性别,Nation.Name as 民族名称")->join("Nation on Info.Nation = Nation.Code")->select();
  40.  
  41. //Unition联合查询
  42. /*$sql="select name from car union select name from users";
  43. $attr=$dx->query($sql);*/
  44. //$attr=$dx->field("name")->union("select name from users")->select();
  45.  
  46. //distinct去重
  47. //$attr=$dx->field("brand")->distinct(true)->select();
  48.  
  49. //limit分页,参数分别代表跳过多少条,取多少条
  50. //$attr=$dx->limit(2,5)->select();
  51.  
  52. //page分页,参数分别代表当前页,取多少条
  53. //$attr=$dx->page(3,5)->select();
  54.  
  55. //聚合函数
  56. //取数据总条数
  57. //$attr=$dx->count("*");
  58. //取某一列的和
  59. //$attr=$dx->Sum("price");
  60. //取平均值
  61. //$attr=$dx->avg("price");
  62. //取最大值
  63. //$attr=$dx->max("price");
  64. //取最小值
  65. //$attr=$dx->min("price");
  66.  
  67. //方法二:写sql语句
  68. $sql="select * from nation";
  69. $attr=$dx->query($sql);
  70. //$sql="insert into car (code,name) values('c022','解决')";
  71. //$attr=$dx->execute($sql);
  72. //var_dump($attr);
  73.  
  74. //第三步注册变量到视图模板并显示
  75. $this->assign("test",10);
  76. $this->assign("info",$attr);
  77. $this->display();
  78. }

视图模板(DB.html):

  1. <body>
  2. <table width="80%" border="1" cellpadding="0" cellspacing="0">
  3. <tr>
  4. <th>序号</th>
  5. <th>姓名</th>
  6. <th>民族</th>
  7. <th>性别</th>
  8. </tr>
  9. <foreach name="info" item="v">
  10. <tr>
  11. <td align="center"><{$v.code}></td>
  12. <td align="center"><{$v.name}></td>
  13. <td align="center"><{$v.nation}></td>
  14. <td align="center"><{$v["sex"]?"男":"女"}></td>
  15. </tr>
  16. </foreach>
  17. </table>
  18.  
  19. <if condition="$test lt 10">
  20. hello
  21. <else />
  22. lajikk
  23. </if>
  24. </body>

模型(modle)的更多相关文章

  1. Simplified Memory Modle C/C++内存模型

    最近学习c++看视频时,老师时常提到栈区堆区,搞不清楚,只能泪目,毕竟爱过...因此,接下来对此做些整理,方便回顾.(老师说:这个简化模型仅用于初学者示意,与实际模型并不完全一致) 1.stack(栈 ...

  2. [.net 面向对象程序设计深入](6).NET MVC 6 —— 模型、视图、控制器、路由等的基本操作

    [.net 面向对象程序设计深入](6).NET MVC 6 —— 模型.视图.控制器.路由等的基本操作 1. 使用Visual Studio 2015创建Web App (1)文件>新建> ...

  3. [转]JAVA中Action层, Service层 ,modle层 和 Dao层的功能区分

    首先这是现在最基本的分层方式,结合了SSH架构.modle层就是对应的数据库表的实体类.Dao层是使用了Hibernate连接数据库.操作数据库(增删改查).Service层:引用对应的Dao数据库操 ...

  4. MVC 模型绑定

    在WebForm,获取提交表单的值一般都是Request.Form["Title"]这样的方式.在MVC中,提供了模型绑定机制.让后台获取表单或Url中的参数变得更加简单. 一.基 ...

  5. Django模型-数据库操作

    前言 前边记录的URLconf和Django模板全都是介绍页面展示的东西,也就是表现层的内容.由于Python先天具备简单而强大的数据库查询执行方法,Django 非常适合开发数据库驱动网站. 这篇开 ...

  6. django模型——数据库(二)

    模型--数据库(二) 实验简介 模型的一些基本操作,save方法用于把对象写入到数据库,objects是模型的管理器,可以使用它的delete.filter.all.order_by和update等函 ...

  7. 二 Djano模型层之模型字段选项

    字段选项 以下参数是全部字段类型都可用的,而且是可选的 null 如果为True,Django将在数据库中将空值存储为NULL.默认值为False 对于字符串字段,如果设置了null=True意味着& ...

  8. mvc,mvp.mvvm模型

    这些指的是框架模式,框架模式不是一门写代码的学问,而是一门管理与组织代码的学问.其本质是一种软件开发的模型. 与设计模式不同,设计模式是在解决一类问题时总结抽象出的公共方法(工厂模式,适配器模式,单例 ...

  9. JAVA中Action层, Service层 ,modle层 和 Dao层的功能区分

    Dao层是使用了Hibernate连接数据库.操作数据库(增删改查).Service层:引用对应的Dao数据库操作,在这里可以编写自己需要的代码(比如简单的判断).Action层:引用对应的Servi ...

随机推荐

  1. 如何在.NET MVC中使用jQuery并返回JSON数据

    http://blog.csdn.net/dingxingmei/article/details/9092249 开始实践 - jQuery端 假设我们要从服务器端获取一个文章列表,并把文章条目显示在 ...

  2. Magento:Paypal付款不成功返回后不要清空购物车产品的解决方案

    经常遇到这个问题,当我们使用第三方支付工具Gateway如paypal支付的时候,如果用户付款不成功或者取消了订单再返回网站时,发现购物车里面的产品已经被清空了,如果是客户主动cancel的还好,但是 ...

  3. 转: ASP.NET+ExtJs4.0+表单提交submit,上传图片到服务器

    http://blog.csdn.net/lmaohuanl/article/details/6792057 <!DOCTYPE html PUBLIC "-//W3C//DTD XH ...

  4. 转linux

    随着上班的深入,愈来愈感觉到转linux的必要性,最近做实验室的网页,在windows下是好的, 没想到,传到liunx服务器上,居然出了问题,很是郁闷,平时还是用liunx用的少了. 以后操作系统要 ...

  5. static 静态代码块 动态代码块 单例

    1. 共享,不属于对象,属于类,类成员变量,任何一个类的对象都有该属性,一旦被修改,则其他对象中的该属性也被更改. 2. 类中方法是static的,可以通过类名直接访问,不用new一个该类的对象. 3 ...

  6. PAT (Basic Level) Practise:1006. 换个格式输出整数

    [题目链接] 让我们用字母B来表示“百”.字母S表示“十”,用“12...n”来表示个位数字n(<10),换个格式来输出任一个不超过3位的正整数.例如234应该被输出为BBSSS1234,因为它 ...

  7. ion torrent ion proton

    https://www.youtube.com/watch?v=6Is3W7JkFp8 NGS 的视频 说的不错 一个做癌症的教授讲的 Ion Torrent™ next-generation seq ...

  8. [POJ] 3277 .City Horizon(离散+线段树)

    来自这两篇博客的总结 http://blog.csdn.net/SunnyYoona/article/details/43938355 http://m.blog.csdn.net/blog/mr_z ...

  9. java serializable深入了解

    声明:本文转自csdn论坛,原文地址为http://blog.csdn.net/zdw890412/article/details/7380069,对原作者表示感谢! 引言 将 Java 对象序列化为 ...

  10. ss命令使用示例

    导读 ss是Socket Statistics的缩写,可以用来获取socket统计信息,它可以显示和netstat类似的内容.但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比n ...