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

最新文章

  1. 用Yaml文件进行元素管理【转】
  2. EasyDarwin不能保存HLS列表的解决方案
  3. Cacheable key collision with DefaultKeyGenerator
  4. 解决eclipse ctrl+鼠标左键不能用
  5. 在AD转换中的过采样和噪声形成
  6. c语言的一些库
  7. Hadoop学习9--动态增加datanode
  8. 关键字 const
  9. 关于css样式的看法
  10. Poj 3468-A Simple Problem with Integers 线段树,树状数组
  11. 转:linux shell 数组建立及使用技巧
  12. 用Iconv应对NodeJs对称加密技术在汉字编码与NoSQL的一些坑洞
  13. poj 1721 CARDS (置换群)
  14. IDEA2017使用Maven方式配置Mybatis-Generator
  15. RESTful API 编写指南
  16. python day one 变量,if
  17. J2EE进阶(七)利用SSH框架根据数据表建立model类
  18. linux 对MTD分区nand flash的烧写和读取
  19. event flow
  20. Java Volatile关键字 以及long,double在多线程中的应用

热门文章

  1. Linux 编译安装内核
  2. MySQL数据库简介
  3. 在ubuntu 14.04 编译android 2.3.1 错误解决办法
  4. centoOS下安装python3 和 pip: command not found
  5. Python3中集合的混合使用
  6. loj #6485. LJJ 学二项式定理 (模板qwq)
  7. P3879 [TJOI2010]阅读理解
  8. 【NOIP 2009】靶形数独
  9. iOS端VR视频播放(转自简书http://www.jianshu.com/p/1ee1a0d1d320)
  10. How to grow up as a BA