thinkPHP 全局函数
2024-09-27 09:19:48
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请求成功!
最新文章
- 用Yaml文件进行元素管理【转】
- EasyDarwin不能保存HLS列表的解决方案
- Cacheable key collision with DefaultKeyGenerator
- 解决eclipse ctrl+鼠标左键不能用
- 在AD转换中的过采样和噪声形成
- c语言的一些库
- Hadoop学习9--动态增加datanode
- 关键字 const
- 关于css样式的看法
- Poj 3468-A Simple Problem with Integers 线段树,树状数组
- 转:linux shell 数组建立及使用技巧
- 用Iconv应对NodeJs对称加密技术在汉字编码与NoSQL的一些坑洞
- poj 1721 CARDS (置换群)
- IDEA2017使用Maven方式配置Mybatis-Generator
- RESTful API 编写指南
- python day one 变量,if
- J2EE进阶(七)利用SSH框架根据数据表建立model类
- linux 对MTD分区nand flash的烧写和读取
- event flow
- Java Volatile关键字 以及long,double在多线程中的应用
热门文章
- Linux 编译安装内核
- MySQL数据库简介
- 在ubuntu 14.04 编译android 2.3.1 错误解决办法
- centoOS下安装python3 和 pip: command not found
- Python3中集合的混合使用
- loj #6485. LJJ 学二项式定理 (模板qwq)
- P3879 [TJOI2010]阅读理解
- 【NOIP 2009】靶形数独
- iOS端VR视频播放(转自简书http://www.jianshu.com/p/1ee1a0d1d320)
- How to grow up as a BA