Laravel 5分页,不会在具有自定义页面名称的页面中移动

时间:2015-03-13 14:36:31

标签: twitter-bootstrap laravel laravel-5

我提供自定义页面名称" p_role"使用setPageName方法,因为我想在一个页面上使用多个分页。

但是当我设置自定义页面名称($roles->setPageName('p_role');)时,渲染(twitter-bootstrap分页)链接无效。

如果默认页面名称"页面"它可以正常工作设置为自定义页面名称($roles->setPageName('page');

那么如何在laravel 5分页中设置自定义页面名称。

AccessController.php

use App\Http\Controllers\Controller;
use App\Models\Role;

class AccessController extends Controller {
   public function getRole()
   {
       $roles = Role::paginate(1);
       $roles->setPageName('p_role');
       return view('role', compact('roles'));
   }
}

role.blade.php

<div>
    <ol>
        @foreach($roles as $role)
        <li>
           {{$role->name}}
        </li>
       @endforeach
    </ol>
    {!! $roles->render() !!}
</div>

输出:这些链接不起作用,使用$ roles-&gt; setPageName(&#39; p_role&#39;)来设置页面名称。

<ul class="pagination">
    <li class="disabled"><span>«</span></li> 
    <li class="active"><span>1</span></li>
    <li><a href="http://five/access/roles/?p_role=2">2</a></li> 
    <li><a href="http://five/access/roles/?p_role=2" rel="next">»</a></li>

这些链接运行正常,使用$ roles-&gt; setPageName(&#39; page&#39;)来设置网页名称。

<ul class="pagination">
    <li class="disabled"><span>«</span></li> 
    <li class="active"><span>1</span></li>
    <li><a href="http://five/access/roles/?page=2">2</a></li> 
    <li><a href="http://five/access/roles/?page=2" rel="next">»</a></li>
</ul> 
</ul> 

2 个答案:

答案 0 :(得分:2)

这是Laravel中的一个错误:https://github.com/illuminate/pagination/blob/master/PaginationServiceProvider.php#L21

正如您所看到的,'page'在这里是硬编码的。我提交了问题,您现在可以跟踪它:https://github.com/laravel/framework/issues/8000

UPDATE:

此问题已在L5.1中修复,请参阅pull request #8475

答案 1 :(得分:0)

试试这个:在控制器

public function getRole()
{
   \Paginator::setPageName('foo');
    $roles = Role::paginate(1);
    return view('role', compact('roles'));
}