url生成
ThinkPHP内置提供了U方法,U方法使用例子如下:
U('User/add') // 生成User控制器的add操作的URL地址
U('Blog/read?id=1') // 生成Blog控制器的read操作 并且id为1的URL地址
U('Admin/User/select') // 生成Admin模块的User控制器的select操作的URL地址
上面例子中,如果不定义模块的话 就表示当前模块名称。
U方法若要在地址中传递参数,以如下三种方式,例如:
U('Blog/cate',array('cate_id'=>1,'status'=>1))//第二个参数以关联数组形式传值
U('Blog/cate','cate_id=1&status=1')//第二个参数以字符串形式传值
U('Blog/cate?cate_id=1&status=1')//如果只是字符串方式的参数可以在第一个参数中定义
在view视图页面使用U方法,例如
<a href="{:U('index/tianjia')}">添加用户</a>
页面跳转
系统的\Think\Controller类内置了两个跳转方法success和error,用于页面跳转提示
使用方法很简单,例如
$User = M('User'); //实例化User对象
$result = $User->add($data);
if($result){ //设置成功后跳转页面的地址,默认的返回页面$_SERVER['HTTP_REFERER']
$this->success('新增成功', 'User/list',3);
} else {
//错误页面的默认跳转页面是返回前一页,通常不需要设置
$this->error('新增失败');
}
success和error方法的第一个参数表示提示信息,第二个参数表示跳转地址,第三个参数是跳转时间(单位为秒)。
Controller类的redirect方法可以实现类似的页面跳转功能。
redirect方法的参数用法和U函数的用法一致,例如:
//重定向到New模块的Category操作
$this->redirect('index/index', array('id' => 2), 5, '页面跳转中...');
//重定向到指定的URL地址
redirect(U('home/index/index'), 5, '页面跳转中...')