tp5.0.20 分頁跳轉時URL錯誤的解決辦法
最近的專案用TP5.0.20 , 在使用過程中發現分頁有時候 正常有時候 不正常 ,可能是伺服器配置的問題吧 ,分頁點選下一頁面的時候 URL不正確 , 於是百度了蠻久 , 也到TP官網論壇裡面去找幫忙 ,結果都是沒有效果 ,於是 想,自己能不能按照自己的需求來改進一下這個分頁功能。結果還真的成功了 。分享一下!
首頁,在執行的時候已經設定了 \think\Url::root('/public/index.php?s=') ; 所以訪問頁面基本上都是 類似於 http://域名/public/index.php?s=/index/Order/index.html ,當有分頁的時候 ,下一頁系統預設是 index.php?page=2 ,這樣肯定不能正常訪問到正確的下一頁 , 正確的URL應該是 /public/index.php?s=/index/Order/index/page/2.html .所以得動手 修改一下分頁的功能了。
1.修改一下配置檔案config.php中的對於分頁的設定 ,我的配置如下 :
注意:path,iswrong 這兩項是自己配置的,
2.修改核心檔案功能 \think\library\think\Paginator.php , 修改的部分如下 , 只需要修改 url()方法即可;程式碼如下
protected function url($page)
{
if ($page <= 0) {
$page = 1;
}
if (strpos($this->options['path'], '[PAGE]') === false) {
$parameters = [$this->options['var_page'] => $page];
$path = $this->options['path'];
} else {
$parameters = [];
$path = str_replace('[PAGE]', $page, $this->options['path']);
}
if (count($this->options['query']) > 0) {
$parameters = array_merge($this->options['query'], $parameters);
}
if( $this->options['iswrong'] ){ // 自己寫的
$request= \think\Request::instance();
$path .= "/".$request->module()."/".$request->controller()."/".$request->action() ;
$url = $path;
if (!empty($parameters)) {
foreach($parameters as $key=>$val){
$url .= '/' . $key.'/'.$val ;
}
$url .='.'.config('url_html_suffix') ;
}
}else{ // 系統原來的
$url = $path;
if (!empty($parameters)) {
$url .= '?' . http_build_query($parameters, null, '&');
}
}
return $url . $this->buildFragment();
}
如果能解決你的問題記得點贊喲~~
相關文章
- 網頁上有錯誤怎麼辦 網頁錯誤的一般解決辦法網頁
- dns錯誤怎麼辦 dns錯誤的解決辦法DNS
- VPN連線800錯誤的解決辦法(轉)
- 網頁證書錯誤怎麼回事 證書錯誤的解決辦法網頁
- 【git】Git commit時提示錯誤時 解決辦法GitMIT
- unity player 顯示播放錯誤時的解決辦法Unity
- CATIA許可證時間錯誤的解決辦法
- 轉: redhat linux ftp 553 錯誤的解決辦法RedhatLinuxFTP
- ORA-01034錯誤的解決辦法[轉]
- SAP錯誤提示解決辦法
- 當前頁面指令碼發生錯誤的解決辦法指令碼
- scp出現錯誤的解決辦法
- samba一個錯誤的解決辦法!Samba
- 連線oracle錯誤解決辦法Oracle
- nginxFastCGI錯誤Primaryscriptunknown解決辦法NginxAST
- Unable to locate package錯誤解決辦法Package
- oracle 1455 錯誤解決辦法Oracle
- 畢設之錯誤解決辦法
- iOS路上遇到的錯誤及解決辦法iOS
- ORA-12705,錯誤的解決辦法
- SPFILE引數修改錯誤的解決辦法
- ORA-12170錯誤的解決辦法
- SYBASE程式設計中的莫名錯誤及其解決辦法 (轉)程式設計
- Mysql5.7錯誤日誌時間不對的解決辦法MySql
- 時區錯誤導致oracle的EM不能啟動解決辦法Oracle
- Idea編譯錯誤解決辦法Idea編譯
- PHP編譯錯誤及解決辦法PHP編譯
- ORA-29339錯誤解決辦法
- ORA-54013錯誤解決辦法
- 開啟網站被掛馬跳轉到博彩頁面解決辦法網站
- 網站劫持跳轉,分享網站被劫持跳轉的解決辦法網站
- 使用錨點跳轉時出現位置偏差原因及解決辦法
- 開機checking file錯誤的解決辦法
- ORA-01034錯誤的解決辦法
- 安裝wsl錯誤的一種解決辦法
- 建庫時EM報錯的解決辦法
- 【轉】vs2010開啟qt的.pro檔案時錯誤解決辦法QT
- haproxy1.5.15代理下,使用IE訪問url裡傳輸中文引數時錯誤解決辦法.