卓象程序员 | 哈尔滨WEB和PHP培训 | 品质教育,口碑传承 | 为做出口口相传,好口碑的教育品牌而奋斗!

龙江地区WEB和PHP技术的推广者 联系我们15124584610

您所在的位置:首页 > 文章 >ThinkPHP5连载

「ThinkPHP5开发连载十三」页面跳转
时间: 2018-11-09 11:29:40     来源: 卓象IT实训基地【原创】

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


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

「ThinkPHP5开发连载十三」页面跳转



1. 使用

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

「ThinkPHP5开发连载十三」页面跳转


浏览器访问:

「ThinkPHP5开发连载十三」页面跳转


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

「ThinkPHP5开发连载十三」页面跳转


注意:

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

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

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


2. 跳转模板

1)跳转模板位置

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

「ThinkPHP5开发连载十三」页面跳转


「ThinkPHP5开发连载十三」页面跳转


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

2)自定义跳转模板

①配置项

「ThinkPHP5开发连载十三」页面跳转


②修改配置项

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

「ThinkPHP5开发连载十三」页面跳转


注意:

1. 完整路径为:

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

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

③新建success与error模板

「ThinkPHP5开发连载十三」页面跳转


④浏览器访问

「ThinkPHP5开发连载十三」页面跳转


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

「ThinkPHP5开发连载十三」页面跳转



3. 小版本错误

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

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

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

「ThinkPHP5开发连载十三」页面跳转


测试步骤:

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

「ThinkPHP5开发连载十三」页面跳转


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

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

「ThinkPHP5开发连载十三」页面跳转


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

「ThinkPHP5开发连载十三」页面跳转


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

「ThinkPHP5开发连载十三」页面跳转


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

「ThinkPHP5开发连载十三」页面跳转


注意:

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

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

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

「ThinkPHP5开发连载十三」页面跳转


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

下一篇讲解“重定向”

「ThinkPHP5开发连载十三」页面跳转