Php Laravel 5中自定义分页演示器的替代方案是什么?
在Laravel 5中,自定义演示者是否已被删除?有人知道在Laravel5中调整类名和查看数据的替代方法吗Php Laravel 5中自定义分页演示器的替代方案是什么?,php,laravel,laravel-5,Php,Laravel,Laravel 5,在Laravel 5中,自定义演示者是否已被删除?有人知道在Laravel5中调整类名和查看数据的替代方法吗 在Laravel 5中,自定义分页基于演示者(类)而不是视图 假设在路由代码中 $users = Users::paginate(15); 在L4中,您曾经在视图中执行类似操作: $users->appends(['sort' => 'votes'])->links(); 在L5中,您可以执行以下操作: $users->appends(['sort' =>
在Laravel 5中,自定义分页基于演示者(类)而不是视图 假设在路由代码中
$users = Users::paginate(15);
在L4中,您曾经在视图中执行类似操作:
$users->appends(['sort' => 'votes'])->links();
在L5中,您可以执行以下操作:
$users->appends(['sort' => 'votes'])->render();
render()
方法接受illumb\Contracts\Pagination\Presenter
实例。您可以创建一个实现该约定的自定义类,并将其传递给render()
方法
或者,您可以扩展Laravel分页器(以便使用其分页逻辑),然后将现有分页实例($users->…
)传递给扩展类构造函数。这确实是我基于Laravel提供的Bootstrap presenter创建自定义presenter所做的。它使用所有的Laravel分页逻辑,并且只覆盖渲染方法
使用我的自定义演示者,我的视图如下所示:
with(new \Stolz\Laravel\Pagination($users->appends(['sort' => 'votes'])))->render();
我的自定义分页演示者是:
<?php namespace Stolz\Laravel;
use Illuminate\Pagination\BootstrapThreePresenter;
class Pagination extends BootstrapThreePresenter
{
/**
* Convert the URL window into Zurb Foundation HTML.
*
* @return string
*/
public function render()
{
if( ! $this->hasPages())
return '';
return sprintf(
'<ul class="pagination" aria-label="Pagination">%s %s %s</ul></div>',
$this->getPreviousButton(),
$this->getLinks(),
$this->getNextButton()
);
}
/**
* Get HTML wrapper for disabled text.
*
* @param string $text
* @return string
*/
protected function getDisabledTextWrapper($text)
{
return '<li class="unavailable" aria-disabled="true"><a href="javascript:void(0)">'.$text.'</a></li>';
}
/**
* Get HTML wrapper for active text.
*
* @param string $text
* @return string
*/
protected function getActivePageWrapper($text)
{
return '<li class="current"><a href="javascript:void(0)">'.$text.'</a></li>';
}
/**
* Get a pagination "dot" element.
*
* @return string
*/
protected function getDots()
{
return $this->getDisabledTextWrapper('…');
}
}
我意识到这是一个旧线程,但我正试图做@javi stolz所做的事情,它没有调用我的重写getActivePageWrapper
方法。它仍然从BootstrapThreePresenter
调用该函数。还有其他人有这个问题吗?这里是Laravel5.8关于如何扩展核心分页的帖子:stackoverflow.com/a/58005778/1916821