页面跳转

操作完成后,成功或失败页面跳转可以使用 控制器基类的success,error方法:

success方法

  1. /**
  2. * 操作成功跳转的快捷方法
  3. * @access protected
  4. * @param mixed $msg 提示信息
  5. * @param string $url 跳转的URL地址
  6. * @param mixed $data 返回的数据
  7. * @param integer $wait 跳转等待时间
  8. * @param array $header 发送的Header信息
  9. * @return void
  10. */
  11. protected function success($msg = '', $url = null, $data = '', $wait = 3, array $header = [])

常用方式:

  1. //默认跳转到$_SERVER['HTTP_REFERER']
  2. $this->success('添加成功');
  3. //默认跳转到article/index
  4. $this->success('添加成功',url('article/index'));
  5. //默认跳转到article/index,并设置数据
  6. $this->success('添加成功',url('article/index'),['id'=>1]);

error方法

  1. /**
  2. * 操作错误跳转的快捷方法
  3. * @access protected
  4. * @param mixed $msg 提示信息
  5. * @param string $url 跳转的URL地址
  6. * @param mixed $data 返回的数据
  7. * @param integer $wait 跳转等待时间
  8. * @param array $header 发送的Header信息
  9. * @return void
  10. */
  11. protected function error($msg = '', $url = null, $data = '', $wait = 3, array $header = [])

常用方式:

  1. //默认跳转到javascript:history.back(-1);
  2. $this->error('添加失败');
  3. //默认跳转到article/index
  4. $this->error('添加失败',url('article/index'));
  5. //默认跳转到article/index,并设置数据
  6. $this->error('添加失败',url('article/index'),['id'=>1]);

AJAX返回

和上面的页面跳转类似也使用 success,error方法,只是如果是 ajax请求会以 json格式返回

success方法

常用方式:

  1. //默认跳转到$_SERVER['HTTP_REFERER']
  2. $this->success('添加成功');
  3. //默认跳转到article/index
  4. $this->success('添加成功',url('article/index'));
  5. //默认跳转到article/index,并设置数据
  6. $this->success('添加成功',url('article/index'),['id'=>1]);

返回结果:

  1. {
  2. "code":1,
  3. "msg":"添加成功!",
  4. "data":"",
  5. "url":"",
  6. "wait":3
  7. }

error方法

常用方式:

  1. //默认跳转到javascript:history.back(-1);
  2. $this->error('添加失败');
  3. //默认跳转到article/index
  4. $this->error('添加失败',url('article/index'));
  5. //默认跳转到article/index,并设置数据
  6. $this->error('添加失败',url('article/index'),['id'=>1]);

返回结果:

  1. {
  2. "code":0,
  3. "msg":"添加失败!",
  4. "data":"",
  5. "url":"",
  6. "wait":3
  7. }

重定向

重定向用控制器的 redirect 方法

  1. /**
  2. * URL重定向
  3. * @access protected
  4. * @param string $url 跳转的URL表达式
  5. * @param array|integer $params 其它URL参数
  6. * @param integer $code http code
  7. * @return void
  8. */
  9. protected function redirect($url, $params = [], $code = 302)

常用方式:redirect方法的参数用法和助手函数url的用法一致(参考URL生成部分),如:

  1. $this->redirect('Article/index', ['id' => 2]);

重定向到指定的外部URL地址 并且使用302

  1. $this->redirect('http://www.thinkcmf.com',302);

原文: https://www.thinkcmf.com/docs/cmf/跳转和重定向.html