M函数
TP的Model父类,封装的功能比较多,增删改查操作都具备.
一些表,比如留言表,comment
class CommentModel extends Model { }
M('comment') 的作用就是得到父类Model的对象,
且把Model的表名---指向-->comment
D函数
D函数也可以实例化Model,
优先实例自定义的子类Model,
如果子类Model不存在,则功能等同于M()的函数.
如果有自定义的类,也可以用D()来导入
例如
$a = new \Home\Model\DemoModel(); $a = D('Demo');//thinkphp 封装的方法(优先得到子类的方法)
//两者的效果是一样的
D函数跨模块调用Model
如:如:在Admin模块下,调用 Home模块下的DemoModel
//跨模块调用,Admin/controller/indexcontroller.class.php下
$DemoModel = D('Home/Demo'); //home下面的Demo模块 $a = $DemoModel->papa();
调用Home模块下DemoModel.class.php模块
<?php namespace Home\Model; use Think\Model; class DemoModel extends Model { public function papa(){ //echo 'Model'; $arr = array('id'=>'123','name'=>'healy','age'=>'99','sex'=>'girl'); $a = $this->add($arr); return $a; } } ?>
U函数
U函数 按系统设定的URL规则,生成URL
在控制器中,可以这样来写:
$url = U('模块/控制器/方法',参数数组或字符串);
例:
//大U函数的应用生成URL public function uu(){ //$a = U('Home/User/ff',array('id'=>7)); $a = U('Home/User/ff',"id=4&p=3"); echo $a; }
效果图
在模板中的写法
注意: 在模板中调用时,标签中加":"
<!--模板里面使用--> {:U('Home/User/ff',array('id'=>3))}
C函数
读取和设置配置选项的函数
配置文件
<?php return array( //'配置项'=>'配置值' 'DB_TYPE' => 'mysql', // 数据库类型 'DB_HOST' => 'localhost', // 服务器地址 'DB_NAME' => 'test', // 数据库名 'DB_USER' => 'root', // 用户名 'DB_PWD' => '', // 密码 //随便写的 'WEB_NAME' => 'blog', );
读取配置文件
//读取配置项C函数的用法 echo C('DB_NAME'); C('WEB_NAME','xiugai'); echo C('WEB_NAME');//运行时的修改,不改原来配置文件 exit();
效果
I函数
防止XSS攻击和sql注入,所做的过滤函数.
I('get.title') --输出--> <div> // 防止XSS攻击
I('post.email') --输出-- 转义并过滤html标签后的email内容.
get请求
//I函数的用法
//传统的用法 //$get=$_GET['id']; //echo $get;
$get = I('id'); echo $get;
//两者的效果是一样的
POST请求
home下的模板add.html
<form class="" action="{:U('Home/User/ff')}" method="post"> <input type="text" name="id" value=""> <input type = "submit" name="" value = "submit"> </form> <!-- {:U('Home/User/ff')}===> action/shop/index.php/Home/User/ff.html -->
home下的控制器UserController.class.php
$get = I('id'); echo $get; exit();
测试POST请求成功!