ThinkPHP5开发连载十三之页面跳转

​上一篇文章讲解“空操作+空控制器”,本篇文章讲解“页面跳转”。

在应用开发中,经常会遇到一些带有提示信息的跳转页面,例如操作成功或者操作错误页面,并且自动跳转到另外一个目标页面。系统的\think\Controller类内置了两个跳转方法success和error,用于页面跳转提示。

1. 使用

使用方法较为简单,不具体举例,直接进行测试使用。

浏览器访问:

将$flg的值设为0,程序走else错误提示,浏览器重新访问:

注意:

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

2. 默认的等待时间都是3秒。

3. 当不继承控制器类使用success或error方法时,需要导入跳转类的命名空间“use traits\controller\Jump”。

2. 跳转模板

1)跳转模板位置

success和error方法都可以对应的模板,默认的设置是两个方法对应的模板都是:

这是官方给的跳转模板,可以修改此模板,但一般不做修改。如果需要重新定义跳转模板,可以自定义。

2)自定义跳转模板

配置项

修改配置项

修改跳转模板的配置项,设置为项目内的模板。

注意:

1. 完整路径为:

'dispatch_success_tmpl' => APP_PATH . 'index' . DS .'view/public/success.html',

2. 写完整路径,可定位到任何位置。

新建success与error模板

浏览器访问

模板文件可以使用模板标签,并且可以使用下面的模板变量:

3. 小版本错误

对于success与error,官方给出了一项注意点:

error方法会自动判断当前请求是否属于Ajax请求,如果属于Ajax请求则会自动转换为default_ajax_return配置的格式返回信息。success在Ajax请求下不返回信息,需要开发者自行处理。

针对以上的注意,我们测试一下是否正确,此时使用的ThinkPHP版本为5.0.12。ThinkPHP版本号在thinkphp/base.php中。

测试步骤:

在Index控制器中新建testBug方法,主要用来展示html页面。

新建testbug.html模板,模板中要有ajax。

模板位置:application/index/view/index/testbug.html

在Index控制器中新建fanHui方法,此方法进行success和error的返回。

浏览器访问testBug方法,点击“调用”按钮。

调整if判断的年龄,让其走else的error。

注意:

1. 经测试5.0.12版本,ajax请求时,success与error方法均返回信息,返回数据格式与default_ajax_return配置项设定相同。

2. 官方给出success在ajax请求时不返回信息,是个bug。

ThinkPHP5连载为卓象程序员原创,转载请联系卓象程序员

关注卓象程序员,定期发布技术文章

下一篇讲解“重定向”

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180809A0GQEE00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券