ThinkPHP5如何修改默认跳转成功和失败页面
一、总结
一句话总结:直接修改默认跳转页面对应的模板文件的路径:'dispatch_success_tmpl' => APP_PATH . 'index' . DS . 'view/index/error.html',
'dispatch_success_tmpl' => APP_PATH . 'index' . DS . 'view/index/error.html',
1、ThinkPHP5修改默认跳转成功和失败页面启示是什么?
a、任何需求都是可以百度一下的,说不定就找到了呢
b、thinkphp的位置都是很方便随便修改的
c、我看到了路径,看到路径就代表可以修改这个路径
d、页面的调整比较简单(调页面样式)
2、修改后的路径'dispatch_success_tmpl' => APP_PATH . 'index' . DS . 'view/index/error.html',
如何理解?
APP_PATH
就是application的位置
index就是index模块
view/index/error.html就是表示index模块下的视图下的index文件夹下的
error.html
3、直接修改tpl目录下的dispatch_jump.tpl文件会出现什么问题?
页面只能远程引用js和css,在项目中引用js和css无法读取,或者说视图输出字符串内容替换不行
4、发现模板字符串替换不行(不解析)的解决方案是什么?
直接用模板替换的原字符串即可
<link href="/static/index/dispatch/css/public.css" rel="stylesheet" type="text/css" /> <link href="/static/index/dispatch/css/index.css" rel="stylesheet" type="text/css" /> <link href="/static/index/dispatch/css/404.css" rel="stylesheet" type="text/css" /> <script src="/static/index/dispatch/js/jquery-1.7.2.min.js"></script>
// 视图输出字符串内容替换
'view_replace_str' => [
'__DISPATCH__'=>'/static/index/dispatch'
],
5、发现模板字符串替换不行(不解析)的解决方案想出的启示是什么?
肯定是一个小点(或多个)引发的大问题,所以我们就是要仔细分析,找到这个小点,而小点的解决应该是比较容易的
比如我遇到的ThinkPHP5修改默认跳转成功和失败页面的问题:样式不显示
这个问题的小点就是:模板字符串替换字符串不解析
// 视图输出字符串内容替换
'view_replace_str' => [
'__DISPATCH__'=>'/static/index/dispatch'
],
二、ThinkPHP5的配置之修改默认跳转成功和失败页面
ThinkPHP5中有自带的跳转页面,就是一个笑脸(不明白为什么这个笑脸是横着的)。闲来无事修改了这个框架默认的成功或者失败的跳转页面。
在外部config.php文件夹中,找到以下参数(推荐在修改之前复制一份注释掉,以防修改后不能恢复):
// 默认跳转页面对应的模板文件
'dispatch_success_tmpl' => THINK_PATH . 'tpl' . DS . 'dispatch_jump.tpl',
'dispatch_error_tmpl' => THINK_PATH . 'tpl' . DS . 'dispatch_jump.tpl',
然后根据这个参数就知道:
dispatch_success_tmpl 成功跳转的模板页面
dispatch_error_tmpl 失败跳转的模板页面
THINK_PATH 这是默认模板自己的常量,tpl是模块,dispatch_jump.tpl则是页面的名称。
修改模板页面步骤如下:
我的目录结构如下图:
F是失败的跳转页面,S是成功的跳转页面。
根据目录结构可以看到,页面都在application中的index模块中view下面的index文件夹中。
所以配置参数修改为:
// 默认跳转页面对应的模板文件
'dispatch_success_tmpl' => APP_PATH . 'index' . DS . 'view/index/error.html',
'dispatch_error_tmpl' => APP_PATH . 'index' . DS . 'view/index/ok.html',
APP_PATH能够将路径指引到application下。DS后面的路径接着模块写,就ok了。
然后就可以在controller中新建一个控制器,调用新的模板页面this−>success()和 this->error()。当然原本的参数就不能用。
默认success(参数1,参数2,参数3)和error(参数1,参数2,参数3)函数有参数:
http://www.kancloud.cn/manual/thinkphp5/118051
不好意思,管当文档有的就不写了。
参考:ThinkPHP5的配置之修改默认跳转成功和失败页面 - CSDN博客
https://blog.csdn.net/schopenhauerzhang/article/details/70493667