一、页面跳转
如果要使用页面跳转必须要继承基类Controller类,因为基类Controller引入了trait类库,trait类库又实现了success()和error()的跳转方法。
1、当前控制器
来到默认模块默认控制器中演示,首先继承自基类Controller,在当前Index控制器中创建一个hello()方法来模拟网站的后台登陆和页面的跳转:

class Index extends \think\Controller
{public function index(){return 'TP5学习ing....';}public function hello($name){if ($name=='thinkphp') {$this->success('验证成功,正在跳转~~','ok');}else {$this->error('验证失败,返回登陆页面','login');}}public function ok(){return '欢迎使用本系统';}public function login(){return '登陆页面';}
}

根据逻辑,如果访问的url是:http://tp5.com/index/index/hello/name/thinkphp,会执行success()方法,跳转到ok()方法,反之,使用:http://tp5.com/index/index/hello/name/tp5,则会走error()方法,跳转到login()方法。

2、跨控制器
首先创建一个新的控制器Login,把Index中的ok()和login()方法剪切到文件中:

<?php
namespace app\index\controller;
class Login extends \think\Controller
{public function ok(){return '欢迎使用本系统';}public function login(){return '登陆页面';}
}

然后,Index控制器也进行修改:

<?php
namespace app\index\controller;
class Index extends \think\Controller
{public function index(){return 'TP5学习ing....';}public function hello($name){if ($name=='thinkphp') {$this->success('验证成功,正在跳转~~','login/ok');}else {$this->error('验证失败,返回登陆页面','login/login');}}
}

这样就实现了跨控制器的跳转,我们来验证一下:http://tp5.com/index/index/hello/name/thinkphp和http://tp5.com/index/index/hello/name/tp5都能正常跳转。

3、跨模块
首先创建一个demo模块,模块下创建控制器Login.php,把上个例子的Login.php的内容拷贝过去,修改下命名空间,保存。
然后修改下Index控制器:

public function hello($name)
{if ($name=='thinkphp') {$this->success('验证成功,正在跳转~~','demo/login/ok');}else {$this->error('验证失败,返回登陆页面','demo/login/login');}
}

这样就实现了跨模块的跳转,我们来验证一下:http://tp5.com/index/index/hello/name/thinkphp和http://tp5.com/index/index/hello/name/tp5依旧都能正常跳转。

4、外部地址
如果跳转为外部地址的话,记得前提是必须要以协议开头!
演示也很简单,修改一下error()方法跳转的地址:
$this->error(‘验证失败,返回登陆页面’,‘http://www.baidu.com’);

使用http://tp5.com/index/index/hello/name/tp5测试一下,成功跳转到百度。

补充说明
补充一下,这个跳转地址,除了可以用字符串的形式外,还可以路由的方式来生成。示例如下:
$this->success(‘验证成功,正在跳转~~’,\think\Url::build(‘demo/login/ok’));

如果觉得这样写比较繁琐,还可以通过注入函数进行简化:
$this->success(‘验证成功,正在跳转~~’,url(‘demo/login/ok’));

也没有问题。

二、URL重定向
使用redirect(路由地址,请求变量,后缀,是否显示域名)方法
演示一下,因为演示是跳转到同一控制器中的,只需要前两个参数:

class Index extends \think\Controller
{public function hello($name){if ($name=='thinkphp') {$this->redirect('ok',['siteName'=>'百度']);}}public function ok($siteName){return '成功就会跳转到 '.$siteName.' 网址。';}
}

我们来验证一下:http://tp5.com/index/index/hello/name/thinkphp,可以正常跳转。
同样的,重定向也支持外部地址:

public function hello(KaTeX parse error: Expected '}', got 'EOF' at end of input: …ame) { if (name==‘thinkphp’) {
$this->redirect(‘ok’,[‘siteName’=>‘百度’]);
}
else {
$this->redirect(‘http://www.baidu.com’,302);//302是临时重定向,301是永久重定向
}
}

验证一下:http://tp5.com/index/index/hello/name/tp5,直接重定向到百度了。

TP5 页面跳转与重定向相关推荐

  1. 页面跳转与重定向(之二)

    前言 这一篇是接着上一篇的继续 页面跳转与重定向(之一) 在上一篇中, 介绍了在html,js 和JSP中如何跳转和重定向. 基本是在页面层级进行页面的跳转, 进入一个页面后跳入另一个页面. 这一篇将 ...

  2. 页面跳转与重定向(之一)

    前言 html ,js 可以实现页面跳转. jsp , asp, php 也有各自页面跳转与重定向的方式. 下文针对js 和jsp 的页面跳转实现方式进行一个总结. html 页面跳转方式 可以使用h ...

  3. TP5的页面跳转与重定向

    1.页面跳转的目标有哪些? 调用方法: $this->success('提示','地址'); $this->error('提示','地址'); index.php文件内容: <?ph ...

  4. tp5 怎么跳转php页面,tp5页面跳转重定向

    三.页面跳转 1.方法存在的文件路径 TP5\thinkphp\library\traits\controller\Jump.php 成功跳转$this->success(); 失败跳转$thi ...

  5. tp5页面跳转,空控制器空方法

    namespace app\index\controller;use think\Controller;class Login extends Controller{//显示html页面public ...

  6. springboot 直接转发调用_springboot-过滤器的页面跳转【重定向与请求转发】-异常报错...

    springboot中,增加过滤器后,页面重定向跳转与请求转发跳转,都出现报错. 求大佬帮忙解答,谢谢! 一.页面跳转代码: 1.重定向代码: response.sendRedirect(" ...

  7. TP5 页面跳转success 和 error

    success方法的默认跳转地址是$_SERVER["HTTP_REFERER"], error方法的默认跳转地址是javascript:history.back(-1);.特别是 ...

  8. js页面跳转或重定向

    微信小程序开发交流qq群   173683895    承接微信小程序开发.扫码加微信. 正文: 页面重定向推荐的4种方式: <!DOCTYPE html> <html>< ...

  9. flask重定向生成html,Flask实战第5天:页面跳转和重定向

    GET和POST请求 在网络请求中有许多请求方式,比如GET, POST, DELETE, PUT等,最常用的就是GET和POST GET 只会在服务器上获取资源,不会更改服务器的状态,这种请求方式推 ...

  10. 【Python】Flask框架系列(一):安装、页面跳转/重定向、模板、逻辑语句、过滤器、继承/使用block、url链接/加载静态资源

    从下载安装开始的所有笔记. 其实 Flask 的示例程序算是 MVC 模式的. Model 是 ORM, V 是 Template, C 是 url route 和 request handler. ...

最新文章

  1. 技术07期:图计算,让数据间的关系无处可藏【社区分切篇】
  2. 机器学习的5个成功案例
  3. fetch 与引用规格(refspec)—— Git 学习笔记 23
  4. python print 分隔符_python print 使用分隔符 或行尾符
  5. C++ STL标准模板库
  6. python三维数据增强_python图像数据增强——imgaug (三)
  7. java agent 开发_IDEA + maven 零基础构建 java agent 项目
  8. 改动Xmodem/Zmodem上传下载路径
  9. Uber的微服务架构实践
  10. mysql 备份任务_设置mysql 定时备份任务
  11. c语言编辑工具下载,Turbo C-Turbo C2.0-Turbo C下载 v2.0.0.0官方正式版-完美下载
  12. MCGS触摸屏通过MODBUS通讯速度控制台达B2伺服参数,有触摸屏源程序和伺服设定参数,实际的项目应用的。
  13. DolphinScheduler大数据调度系统
  14. linux截屏 保存目录,linux设置截屏图片的保存路径
  15. ArcGIS矢量化——半自动矢量化操作
  16. python排名差怎么改,2017中国大学排名爬虫代码修改
  17. win11账户锁定了怎么解除?
  18. 【Java基础】HashMap原理及常见面试题目
  19. [论文笔记] SODA小目标综述(西工大)
  20. [再寄小读者之数学篇](2014-06-14 自然数集到自身的两个不可交换的双射)

热门文章

  1. linux drwxr-xr-x 是什么意思
  2. 网页登录页面模板下载
  3. 安装新操作系统需要注意的问题
  4. java解压文件 文件过大,Java压缩/解压缩大文件( 1gb)
  5. keras 中fit 和 evaluate中参数 verbose 详解
  6. douban_转自熊博网——牛逼顿
  7. python:series详解和数据获取
  8. C语言四分位数Quartile算法(附完整源码)
  9. intel vPro LMS模块 Linux环境编译
  10. IDEA断点变成了白色