我提供自定义页面名称" 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>
答案 0 :(得分:2)
这是Laravel中的一个错误:https://github.com/illuminate/pagination/blob/master/PaginationServiceProvider.php#L21
正如您所看到的,'page'
在这里是硬编码的。我提交了问题,您现在可以跟踪它:https://github.com/laravel/framework/issues/8000
此问题已在L5.1中修复,请参阅pull request #8475
答案 1 :(得分:0)
试试这个:在控制器
中public function getRole()
{
\Paginator::setPageName('foo');
$roles = Role::paginate(1);
return view('role', compact('roles'));
}