重定向
$this->redirect('New/cate', array('id'=>2), 5, '跳转中。。。。');//停留5秒后跳转到New
模块的cate操作,并显示页面信息,重定向 后会改变当前URL地址
如果只是重定向 一个指定 的URL志趣,而不是到某个模块的操作方法,直接使用redirect函数
重定向,例:redirect('/New/cate/id/2' , 5, '.....');
页面跳转
$this->success('添加成功', '/User/index');//设置成功后跳转页面地址,默认返回页面是$_SERVER['HTTP_REFERER'];
$this->error('添加失败');//错误页面默认跳转是返回上一页
输入变量
I('get.id', 0);//如果不存在$_GET['id'],返回0 I('get.id');//相当于$_GET['id']
// 采用htmlspecialchars方法对$_GET['name'] 进行过滤,如果不存在则返回空字符串
echo I('get.name','','htmlspecialchars');
直接获取整个$_GET数组 I('get.');
I('param . id');//param类型是I函数默认获取变量的类型,,等同于I('id');
path类型变量可以获取URL参数(必须是PATHINFO模式参数),例:
http://serverName/index.php/New/2013/06/01
echo I('path.1');//输出2013
echo I('path.2');//输出06
echo I('path.3');//输出01
变量过滤
// 系统默认的变量过滤机制
'DEFAULT_FILTER' => 'htmlspecialchars'
参数也可以设置支持多个过滤
'DEFAULT_FILTER' => 'strip_tags,htmlspecialchars'
还可以支持进行正则匹配过滤,例如:
// 采用正则表达式进行变量过滤
I('get.name','','/^[A-Za-z]+$/');
I('get.id',0,'/^\d+$/');
变量修饰符
I('变量类型.变量名/修饰符')
例如:
I('get.id/d'); // 强制变量转换为整型
I('post.name/s'); // 强制转换变量为字符串类型
I('post.ids/a'); // 强制变量转换为数组类型
判断请求类型
系统内置了一些常量用于判断请求类型,包括:
常量 | 说明 |
---|---|
IS_GET | 判断是否是GET方式提交 |
IS_POST | 判断是否是POST方式提交 |
IS_PUT | 判断是否是PUT方式提交 |
IS_DELETE | 判断是否是DELETE方式提交 |
IS_AJAX | 判断是否是AJAX提交 |
REQUEST_METHOD | 当前提交类型 |
使用举例如下:
class UserController extends Controller{
public function update(){
if (IS_POST){
$User = M('User');
$User->create();
$User->save();
$this->success('保存完成');
}else{
$this->error('非法请求');
}
}
}
空操作是指系统在找不到请求的操作方法的时候,会定位到空操作(_empty
)方法来执行
例如,下面我们用空操作功能来实现一个城市切换的功能。 我们只需要给CityController类定义一个_empty
(空操作)方法:
<?php
namespace Home\Controller;
use Think\Controller;
class CityController extends Controller{
public function _empty($name){
//把所有城市的操作解析到city方法
$this->city($name);
}
//注意 city方法 本身是 protected 方法
protected function city($name){
//和$name这个城市相关的处理
echo '当前城市' . $name;
}
}