[英]What is the alternative to Custom Pagination Presenter in Laravel 5?
在Laravel 5中,自定義演示者已被刪除? 有人知道Laravel 5中的替代方法是調整類名稱和查看數據嗎?
在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分頁器(以使用其分頁邏輯),然后將現有的分頁實例( $users->...
users- $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('…');
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.