我的一个实验例子:
$this->assign('jumpUrl',U('city@?fds'));
echo U('Myapp://Home-Index/index')."<br>";
echo U('Myapp://Home-User/add');
echo "<br>".U('city@?id=1');
$this->redirect('Myapp://Admin-Index/index',array('id'=>12,'name'=>'peihao'),5,'页面跳转中');
在跳转的时候最重要的是要明白,跳转的时候相对位置是当前的控制文件,儿不是当前的入口文件,如果你写的是路径的情况下;当然也可以
例如我现在访问admin目录下面的indexActionindex(),想跳转到home目录,就要写成:
$this->redirect('../Home/Index/',array(),5,'jumt now!');
在应用开发中,经常会遇到一些带有提示信息的跳转页面,例如操作成功或者操作错误页面,并且自动跳转到另外一个目标页面。系统的Action类内置了两个跳转方法success和error,用于页面跳转提示,而且可以支持ajax提交。使用方法很简单,举例如下:
$User = M("User"); // 实例化User对象
$result = $User->add($data);
if ($result){
// 设置成功后的跳转页面地址 默认的返回页面是$_SERVER["HTTP_REFERER"]
$this->assign("jumpUrl","/User/list/");
$this->success("新增成功!");
}else{
// 错误页面的默认跳转页面是返回上一页 通常可以不用设置
$this->error("新增错误!");
}
Success和error方法都有对应的模板,并且是可以设置的,默认的设置Public:success和Public:error,模板文件可以使用模板标签,并且可以使用下面的模板变量:
$msgTitle :操作标题
$message :页面提示信息
$status :操作状态 1表示成功 0 表示失败 具体还可以由项目本身定义规则
$waitSecond :跳转等待时间 单位为妙
$jumpUrl :跳转页面地址
如果是AJAX方式提交的话,success和error方法会调用ajaxReturn方法返回信息,具体可以参考后面的AJAX返回部分。
$this->redirect('User/list', array('cate_id'=>2), 5,'页面跳转中~')