2016-01-21 90 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以在链接标记上引入目标参数的使用。