Laravel 5 分页,不会在具有自定义页面名称的页面之间移动
Laravel 5 pagination, won't move through pages with custom page name
我正在使用 setPageName 方法提供自定义页面名称 "p_role",因为我想在单个页面上使用多个分页。
但是当我设置自定义页面名称 ($roles->setPageName('p_role');
) 时,呈现的(twitter-bootstrap 分页)链接不起作用。
如果将默认页面名称 "page" 设置为自定义页面名称 ($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->setPageName('p_role') 设置页面名称。
<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->setPageName('page') 设置页面名称。
<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>
试试这个:在 控制器
public function getRole()
{
\Paginator::setPageName('foo');
$roles = Role::paginate(1);
return view('role', compact('roles'));
}
这是 Laravel 中的错误:https://github.com/illuminate/pagination/blob/master/PaginationServiceProvider.php#L21
如您所见,'page'
在此处进行了硬编码。我提交了问题,您现在可以跟踪它:https://github.com/laravel/framework/issues/8000
更新:
此问题已在 L5.1 中修复,请参阅 pull request #8475
我正在使用 setPageName 方法提供自定义页面名称 "p_role",因为我想在单个页面上使用多个分页。
但是当我设置自定义页面名称 ($roles->setPageName('p_role');
) 时,呈现的(twitter-bootstrap 分页)链接不起作用。
如果将默认页面名称 "page" 设置为自定义页面名称 ($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->setPageName('p_role') 设置页面名称。
<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->setPageName('page') 设置页面名称。
<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>
试试这个:在 控制器
public function getRole()
{
\Paginator::setPageName('foo');
$roles = Role::paginate(1);
return view('role', compact('roles'));
}
这是 Laravel 中的错误:https://github.com/illuminate/pagination/blob/master/PaginationServiceProvider.php#L21
如您所见,'page'
在此处进行了硬编码。我提交了问题,您现在可以跟踪它:https://github.com/laravel/framework/issues/8000
更新:
此问题已在 L5.1 中修复,请参阅 pull request #8475