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

PHP知识 56 阅读 0

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

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

主要修改为两个步骤:

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

具体参考文章:

thinkphp关于分类页面的伪静态规则

2周前 (07-15) 0
thinkphp关于分类页面的伪静态规则

第二个就是修改默认的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地址为伪静态

Tags:

版权声明:若无特殊注明,本文皆为《燕闻墨香博客》原创,转载务必保留文章来源。

本文链接:thinkphp6修改栏目分页url地址为伪静态 & https://www.mxooo.cn/1222/

推荐阅读
发表评论 取消回复
表情 图片 链接 代码

分享