在用户页面上创建分页时,分页链接不正确,它们在 page=1 之前使用/,因此链接重定向到根目录,但找不到 404。
Controller 方法:
public function getRegister()
{
$users = User::where("admin", 0)->paginate(3);
return view('auth.register', compact('users'));
}
看法
<?php echo $users->render(); ?>
用户页面网址:http://localhost:8080/pal/public/agent/create
分页链接:http://localhost:8080/pal/public/agent/create/?page=1
当点击分页链接浏览器将我重定向到:http://localhost:8080/agent/create?page=3并得到 404 页面未找到
最佳答案
不幸的是,至少就目前而言,这就是 Laravel 5 的工作方式。
为了摆脱那个额外的斜线,你必须在渲染它们之前手动处理分页链接。
您可以:
1) 在您的 Controller 中,在分页器实例上调用 setPath(),如下所示:
public function getRegister()
{
$users = User::where('admin',0)->paginate(3);
$users->setPath('your/custom/path');
return view('your/view')->with('users',$users);
}
接下来在您的 View 中,只需调用 render() ,它就会按预期工作。
或 2) 在 Controller 中不修改任何内容,但在您的 View 中更改链接格式,例如:
{!! str_replace('/?', '?', $users->render()) !!}
您可以引用question我以前养过。
希望这可以帮助!
我仍在寻找更优雅的解决方案,但还没有任何解决方案:(
更新于 2016-05-30
感谢所有的投票。请注意,在 Laravel 5.2 中,您不必再以上述方式破解代码了!您只需在 View 中调用 render() 即可。那太好了,不是吗?
关于laravel - laravel 5 中的分页产生错误的链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29835026/