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