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請求成功!