MVC模式三:模型操作数据库,之后注册变量于模板,之后用控制器的dispaly()方法显示;
一、跨控制器调用方法
因为控制器的实质是类,所以在该方法中造一个要调用的类的对象,调用他的方法;
比如,在main控制器中调用index控制器的方法,就先在main控制器中造一个indexController的对象,再调用方法;
具体实施方式:
//跨控制器调用方法 function method(){ //原始方法 //$ff=new \Home\Controller\IndexController();//绝对路径 //$ff=new IndexController();//相对路径 //$ff->xianshi();
//A方法 //$ff=A('Index'); //$ff=A("Admin/index")//A方法可以看成是原始方法的简写,注意括号内的路径写法 //$ff->xianshi(); //$ff是控制器的实例化对象=>具体的控制器
//R方法,直接输出 echo R("index/xianshi");//注意写法 }
二、模型=>操作数据库(查)
表<=>类
字段<=>成员变量
MVC模式的第三种模式:操作数据库
function DB(){ //操作数据库 $dx=D();//第一步是建一个模型对象 //三种方式=>造模型对象 //$dx=new \Home\Model\UsersModel();//原始方式,必须要有原型文件,创建的对象属于子类 //$dx=D("car");//D方法,不用做原型文件,创建的对象属于父类 //$dx=M("car");//M方法,不用做原型文件,创建的对象属于父类 //var_dump($dx); //第二步访问数据库 //方法一:连贯操作 //$this->jia()->method();//连贯操作的意思$this->jia()返回$this; //$dx=$dx->select();//查询 //$dx=$dx->select("c001,c002"); //$dx=$dx->find("c001");//找特定的数据根据主键值找; //where 可以加查询条件 //$attr=$dx->where("brand!='b002'")->select(); //table可以切换要操作的表 //$attr=$dx->table("info")->select(); //alias可以设置表的别名(知道就行) //$attr=$dx->alias("汽车")->select(); //field可以指定查询的字段 //$attr=$dx->field("code,name")->select(); //order可以加排序条件 //$attr=$dx->order("brand desc")->select(); //group可以分组 //$attr=$dx->field("brand")->group("brand")->select(); //having可以加分组后的条件 //$attr=$dx->field("brand")->group("brand")->having("count(*)>=2")->select(); //join可以连接多个表,在field里面要给字段加别名 //$attr =$dx->field("Info.Code as 代号,Info.Name as 姓名,Sex as 性别,Nation.Name as 民族名称")->join("Nation on Info.Nation = Nation.Code")->select(); //Unition联合查询 /*$sql="select name from car union select name from users"; $attr=$dx->query($sql);*/ //$attr=$dx->field("name")->union("select name from users")->select(); //distinct去重 //$attr=$dx->field("brand")->distinct(true)->select(); //limit分页,参数分别代表跳过多少条,取多少条 //$attr=$dx->limit(2,5)->select(); //page分页,参数分别代表当前页,取多少条 //$attr=$dx->page(3,5)->select(); //聚合函数 //取数据总条数 //$attr=$dx->count("*"); //取某一列的和 //$attr=$dx->Sum("price"); //取平均值 //$attr=$dx->avg("price"); //取最大值 //$attr=$dx->max("price"); //取最小值 //$attr=$dx->min("price"); //方法二:写sql语句 $sql="select * from nation"; $attr=$dx->query($sql); //$sql="insert into car (code,name) values('c022','解决')"; //$attr=$dx->execute($sql); //var_dump($attr); //第三步注册变量到视图模板并显示 $this->assign("test",10); $this->assign("info",$attr); $this->display(); }
视图模板(DB.html):
<body> <table width="80%" border="1" cellpadding="0" cellspacing="0"> <tr> <th>序号</th> <th>姓名</th> <th>民族</th> <th>性别</th> </tr> <foreach name="info" item="v"> <tr> <td align="center"><{$v.code}></td> <td align="center"><{$v.name}></td> <td align="center"><{$v.nation}></td> <td align="center"><{$v["sex"]?"男":"女"}></td> </tr> </foreach> </table> <if condition="$test lt 10"> hello <else /> lajikk </if> </body>
No Excuse~