道者编程

laravel 分页伪静态 自定义分页URL

laravel分页是这样的:http://127.0.0.1:8089/?page=1

通过修改可以改成任何你想的URL,这里我们改成:http://127.0.0.1:8089/page/1。

官方有个方法:withPath,但这个只能自定义URI,不能定义URL,没有其他办法,我们只有从源码入手,或者自己写一个类,这里我们在原生的基础上修改。

一:修改步骤:

1:在vendor\laravel\framework\src\Illuminate\Pagination目录下找到:AbstractPaginator.php文件

2:文件开头新添加方法:urlStr方法

 protected $path = '/';
	
 protected $urlStr = ''; //新添加的方法
3:搜索:public function url($page),添加

public function url($page)
    {
	//新添加判断,添加一个if
	if($this->urlStr !=''){
		return $this->urlStr.$page;
	}
	
        if ($page <= 0) {
            $page = 1;
        }
第一个if是我们新添加的。

4:添加一个withUrl方法

public function withUrl($str)
	{
		$this->urlStr = $str;
		return $this;
	}

二:调用

$url='/page/'; //url是我自定义的
->paginate(10,'','',$page)// $page是当前页,我们传过去
->withUrl($url); //withURL方法是我们新增的方法
我只提取关键部分,前面sql省略了。

这样也没就变成了这种风格:http://127.0.0.1:8089/page/3


最新评论:
1楼 广东省深圳市 电信 发表于 2018-05-25 10:45:18
为什么这么装逼啊
2楼 海南省海口市 电信 发表于 2018-05-25 11:14:56
赞赞赞
3楼 广东省深圳市 电信 发表于 2018-06-04 09:05:37
6666666666
4楼 北京市 联通ADSL 发表于 2018-09-17 14:58:31
果然是优秀啊
6楼 美国 发表于 2019-03-24 18:05:03
垃圾 骗人的
6楼 广东省广州市番禺区 电信ADSL 发表于 2019-07-30 18:40:03
路由应该怎么写呀
共有 6 条记录  首页 上一页 下一页 尾页 1
我要评论:

看不清楚