2016-01-21 141 views
0

我在Laravel下面的代碼來創建分頁Laravel 5.2分頁目標_blank

Route::get('hede', function(){ 
    $paginator = new Illuminate\Pagination\LengthAwarePaginator(
     range(1,500), //a fake range of total items, you can use range(1, count($collection)) 
     500, //count as in 1st parameter 
     20, //items per page 
     \Illuminate\Pagination\Paginator::resolveCurrentPage(), //resolve the path 
     ['path' => \Illuminate\Pagination\Paginator::resolveCurrentPath()] 
    ); 

    return $paginator->render(); 
}) 

我找不到你怎麼設置鏈接的目標,我需要選擇_blank,_parent之間變化_自。

回答

2

按照Mark Davidson的建議,我已經快速瀏覽了一下,看看它是如何工作的。

class CustomPresenter extends \Illuminate\Pagination\BootstrapThreePresenter 
{ 
    protected $target; 

    /** 
    * Create a new Bootstrap presenter instance. 
    * 
    * @param \Illuminate\Contracts\Pagination\Paginator $paginator 
    * @param \Illuminate\Pagination\UrlWindow|null $window 
    * @param string $target 
    */ 
    public function __construct(\Illuminate\Contracts\Pagination\Paginator $paginator, \Illuminate\Pagination\UrlWindow $window = null, $target = '_self') 
    { 
     parent::__construct($paginator, $window); 
     $this->target = $target; 
    } 

    /** 
    * Get HTML wrapper for an available page link. 
    * 
    * @param string $url 
    * @param int $page 
    * @param string|null $rel 
    * @return string 
    */ 
    protected function getAvailablePageWrapper($url, $page, $rel = null) 
    { 
     $rel = is_null($rel) ? '' : ' rel="'.$rel.'"'; 

     return '<li><a href="'.htmlentities($url).'"'.$rel.' target="'.$this->target.'">'.$page.'</a></li>'; 
    } 
} 

要使用這個,我只是做了以下...

$items = Lotpro\User::all(); 
$paginator = new \Illuminate\Pagination\LengthAwarePaginator($items, $items->count(), 10, 0); 
$presenter = new CustomPresenter($paginator, null, '_self'); 
echo $presenter->render(); 

的聯繫應該得到什麼,你傳入構造器的第三個參數target屬性。

+1

將它附加到URL並且不會在鏈接中創建屬性。 – user2075215

+1

對不起,應該多加註意,我已經使用Mark Davidson的建議更新了我的答案。 – user3158900

3

你需要做的是爲分頁渲染創建一個自定義的主持人。

如果您查看本文http://laravelista.com/laravel-custom-pagination-presenter/它應該幫助您完成所需的工作。

本質上,您將創建演示者,並且您將要覆蓋getPageLinkWrapper以在鏈接標記上引入目標參數的使用。