一、模板变量设置及显示
1、模板变量赋值
$this->assign('name',$value);
//或者下面的写法:
$this->name = $value; 2、变量输出
$this->display(); 3、页面显示
{$变量名称}
用 户 名:{$username}
电子邮件:{$userinfo["email"]}
注册时间:{$userinfo["regdate"]|date="Y-m-d H:i",###}
二、Volist标签用法
volist 标签用于在模板中循环输出数据集或者多维数组
mod:记录对mod求余$key:显示数组的key值$k:显示对数组循环的次数offset:从第5条开始循环length:循环10条数据
{$k}{$key}我是单元格内容 | {$k}{$key}我也是单元格内容 |
三、foreach用法
foreach标签没有volist标签那么多的功能,优势是可以对对象进行遍历输出,而volist标签通常是用于输出数组。
用 户 名:{$vo.username}
电子邮件:{$vo.email}
注册时间:{$vo.regdate|date="Y-m-d H:i",###}
四、switch用法
name 属性值为变量名称,也就是没有 $ 符号,而 value 值使用变量时需要 $ 符号,case 的 value 属性可以支持多个条件的同时判断,使用 | 符号进行分割
管理员
图像格式文件
群众
五、thinkphp常用的其他标签
1、比较标签
输出的内容比较标签> 例如:
管理员
2、present标签、notpresent标签
present 标签用来判断模板变量是否已经赋值,相当于 PHP 中的 isset() 函数行为,格式如下:
要输出的内容 notpresent 标签,为 present 标签的反义(即 !isset() )
3、defined标签、notdefined标签
网站名称:{*SITE_NAME}
该例子等同于:
if(defined("SITE_NAME")){
echo '网站名称:',constant("SITE_NAME");
}
?>
4、empty标签、notempty标签
username 为空值
该例子等同于:
if(empty($username)){
echo 'username 为空值';
}
?>
根据 empty() 函数我们知道,如下这些情况得到的结果都是 TRUE 的(使用 empty 标签会有输出):
//假设要检测的变量为 $x
$x = "";
$x = null;
var $x;
$x = array();
$x = false;
$x = 0;
$x = "0";
5、in标签、notin标签
管理群组
该例子等同于:
if(in_array(($groupId), explode(',',"1,2,3"))){
echo '管理群组';
}
?>
6、if...else标签
管理员
群众
游客
condition 属性里面还支持直接使用php代码,例如:
管理员
群众
六、thinkphp的重定向redirect
redirect 方法语法如下:
$this->redirect(string url, array params, int delay, string msg) 例子:
class IndexAction extends Action{
public function index(){
$this->redirect('select', array('status'=>1), 3, '页面跳转中~');
}
}
重定向后得到的 URL 可能为:http://www.5idev.com/index.php/Index/select/status/1
// 不延时,直接重定向
$this->redirect('select', array('status'=>1));
// 延时跳转,但不带参数,输出默认提示
$this->redirect('select', '', 3);
// 重定向到其他模块操作
$this->redirect('Public/login');
// 重定向到其他分组
$this->redirect('Admin-Public/login'); success()和error()是通过意思是隔3秒钟后刷新.
n -- 隔n秒钟
url -- 转此地址
redirect 是使用的 PHP header 重定向
七、获取系统变量
方法:
$this->方法名("变量名",["过滤方法"],["默认值"]) 例子:
$this->_get("name");// htmlspecialchars($_GET["name"])
$this->_get("name","strip_tags");
$this->_get("id","strip_tags",0);
$this->_get('id',false);//没有过滤方法(默认的也不使用) 可以在配置文件中设置默认过滤方法:
'DEFAULT_FILTER'=>'htmlspecialchars,strip_tags'
八、判断请求类型
方法
说明
isGet
判断是否是GET方式提交
isPost
判断是否是POST方式提交
isPut
判断是否是PUT方式提交
isDelete
判断是否是DELETE方式提交
isHead
判断是否是HEAD提交
九、模板的布局 参考:http://doc.thinkphp.cn/manual/layout_template.html
1、以布局模板为入口的方式配置开启LAYOUT_ON 参数(默认不开启),并且设置布局入口文件名LAYOUT_NAME(默认为layout)
一个典型的layout.html模板的写法:
{__CONTENT__}
如果项目需要使用不同的布局模板,可以动态的配置LAYOUT_NAME参数实现。如果某些页面不需要使用布局模板功能,可以在模板文件开头加上 {__NOLAYOUT__} 字符串。
2、以当前输出模板为入口的方式
在模板页中添加