ThinkPHP5如何修改默认跳转成功和失败页面

时间:2022-09-24 15:41:39

ThinkPHP5如何修改默认跳转成功和失败页面

一、总结

一句话总结:直接修改默认跳转页面对应的模板文件的路径:'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的配置之修改默认跳转成功和失败页面

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/SchopenhauerZhang/article/details/70493667

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则是页面的名称。
修改模板页面步骤如下:
我的目录结构如下图:
  ThinkPHP5如何修改默认跳转成功和失败页面

 


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