在Laravel 5中,Custom Presenters已被删除?有人知道Laravel 5中的替代方法是调整类名和查看数据吗?Laravel 5中的Custom Pagination Presenter的替代选择是什么?
http://laravel.com/docs/4.2/pagination#custom-presenters
在Laravel 5中,Custom Presenters已被删除?有人知道Laravel 5中的替代方法是调整类名和查看数据吗?Laravel 5中的Custom Pagination Presenter的替代选择是什么?
http://laravel.com/docs/4.2/pagination#custom-presenters
在Laravel 5定制分页是基于演示(类),而不是视图。
假设在你的路由代码,你有
$users = Users::paginate(15);
在L4你用来做这样的事情在你的看法:
$users->appends(['sort' => 'votes'])->links();
在L5你这样做,而不是:
$users->appends(['sort' => 'votes'])->render();
render()
方法接受一个Illuminate\Contracts\Pagination\Presenter
实例。您可以创建一个实现该合同的自定义类,并将其传递给render()
方法。
或者,您可以扩展Laravel paginator(以使用其分页逻辑),然后将现有分页实例($users->...
)传递给扩展类构造函数。这确实是我为创建基于Laravel提供的Bootstrap演示者的自定义Zurb Foundation演示者所做的。它使用所有的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('…');
}
}