thinkphp6修改栏目分页url地址为伪静态

2021-07-16
293次阅读
没有评论

还是那样,默认的 ?page=2 一类的看不习惯,所以修改一下。

需要注意的是,这里修改的是thinkphp核心类里面的内容,有技术的建议自己定义分页代码,还需要注意的是如果后台也是调用 Paginator.php 这个文件的,那么不建议如此修改,还是多找找资料看看吧。由于我现在用的这个cms 后台使用的 js 翻页,所以修改核心无所谓。千万不要一上来就修改核心,因为我之前就犯过这个错误,前台的url修改好了,但是后台的url很难看。

主要修改为两个步骤:

第一个修改route.php,也就是路由定制伪静态。

具体参考文章:

[post id="1219"]

第二个就是修改默认的url格式为自己定义的格式。

代码:

/**
     * 获取页码对应的链接
     *
     * @access protected
     * @param int $page
     * @return string
     */
    protected function url(int $page): string
    {
        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('[p]', $page, $this->options['path']);
        }

        if (count($this->options['query']) > 0) {
            $parameters = array_merge($this->options['query'], $parameters);
        }
        
        $path = preg_replace('//p/d+/','',$path);//修改结果
        $url = $path;
        if (!empty($parameters)) {
//            $url .= '/' . http_build_query($parameters, '', '&');
            $url = $path.'/'.$this->options['var_page'].'/'.$page.'/';//修改结果
        }

        return $url . $this->buildFragment();
    }

上面 修改后缀 就注释就代表着这是我修改的内容。

注意两个步骤一个不能少,按照我上面的代码,修改完的url 样式应该是 http://lan.com/meiwen/page/2/ 这样的,如果说不对,或者你想修改自己喜欢的样式,主要针对 $url 参数修改。

否则会报错的。

就像这样婶儿的。

thinkphp6修改栏目分页url地址为伪静态

正文结束
居烽
版权声明:本站原创文章,由 居烽 于2021-07-16发表,共计1085字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
验证码