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