thinkphp5设置下画线分页样式,如:/news/index_1.html,分享:
一、路由需要设置,如:‘news/_’ => [‘lists/news’,[‘method’ => ‘get’,‘page’=>‘\d+’]],
二、thinkphp\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);
}
$url = $path;
if (!empty($parameters)) {
//修改部分开始
$controller = request()->controller();
$action = request()->action();
if($controller == 'Lists' and $action != 'search' and $path == str_ireplace('.html','',$path)){
$url = $path.'/index_'.$page.'.html';
}elseif($controller == 'Lists' and $action != 'search' and $path != str_ireplace('.html','',$path)){
if($path == str_ireplace('_','',$path)){
$path = str_ireplace('.html','',$path);
}else{
$path = explode('_',$path)[0];
}
$url = $path.'_'.$page.'.html';
}else{
$url .= '?' . http_build_query($parameters, null, '&');
}
//修改部分结束
}
return $url . $this->buildFragment();
}