質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

Q&A

解決済

1回答

3963閲覧

Laravel5.0のページングで「«」「»」を「前へ」「次へ」に変えたい

lightwill

総合スコア962

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

0グッド

0クリップ

投稿2016/12/28 16:20

編集2016/12/30 06:18

シンプル・ペジネーション

$users = DB::table('users')->simplePaginate(15);

Viewで表示

{!! $users->render() !!}

結果以下のようなHTMLが出力されます。

<ul class="pager"> <li class="disabled"><span>«</span></li> <li><a href="http://xxx.jp/yyy/?page=2" rel="next">»</a></li> </ul>

「«」「»」を「前へ」「次へ」に変えたいですが、
簡単な方法ありますでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Laravel5.3以降であれば、下記の方法で簡単に変更が出来ました。
php artisan vendor:publishで上書用のviewを自動生成
②\views\vendor\pagination\simple-default.blade.phpが下記の通り生成されるので表示文字を変更
(表示したい文字に変更)

html

1@if ($paginator->hasPages()) 2 <ul class="pagination"> 3 {{-- Previous Page Link --}} 4 @if ($paginator->onFirstPage()) 5 <li class="disabled"><span>&laquo;</span></li> 6 @else 7 <!--<li><a href="{{ $paginator->previousPageUrl() }}" rel="prev">&laquo;</a></li>--> 8 <li><a href="{{ $paginator->previousPageUrl() }}" rel="prev">前へ</a></li> 9 @endif 10 11 {{-- Next Page Link --}} 12 @if ($paginator->hasMorePages()) 13 <!--<li><a href="{{ $paginator->nextPageUrl() }}" rel="next">&raquo;</a></li>--> 14 <li><a href="{{ $paginator->nextPageUrl() }}" rel="next">次へ</a></li> 15 @else 16 <li class="disabled"><span>&raquo;</span></li> 17 @endif 18 </ul> 19@endif

###追記(Laravel5.0)※未検証
Laravel 5 で Paginator->render() する時、自前のテンプレートを用いる方法

php

1<?php namespace App\Presenters; 2 3use Illuminate\Pagination\BootstrapThreePresenter; 4 5class CustomPresenter extends BootstrapThreePresenter { 6 7 public function render() 8 { 9 if( ! $this->hasPages()) 10 return ''; 11 12 return sprintf( 13 '<div class="pagination">%s %s %s</div>', 14 $this->getPreviousButton(), 15 $this->getLinks(), 16 $this->getNextButton() 17 ); 18 } 19 20 /** 21 * Get HTML wrapper for an available page link. 22 * 23 * @param string $url 24 * @param int $page 25 * @param string|null $rel 26 * @return string 27 */ 28 protected function getAvailablePageWrapper($url, $page, $rel = null) 29 { 30 $rel = is_null($rel) ? '' : ' rel="'.$rel.'"'; 31 32 return '<a href="'.htmlentities($url).'"'.$rel.'>'.$page.'</a>'; 33 } 34 35 /** 36 * Get HTML wrapper for disabled text. 37 * 38 * @param string $text 39 * @return string 40 */ 41 protected function getDisabledTextWrapper($text) 42 { 43 return '<span>'.$text.'</span>'; 44 } 45 46 /** 47 * Get HTML wrapper for active text. 48 * 49 * @param string $text 50 * @return string 51 */ 52 protected function getActivePageWrapper($text) 53 { 54 return '<span>['.$text.']</span>'; 55 } 56}

他にはこれ等も参考になると思います。
Laravel5のページナビをカスタマイズする

php

1<?php 2  3namespace App\Http\Pagination; 4  5use Illuminate\Support\HtmlString; 6use Illuminate\Contracts\Pagination\Paginator as PaginatorContract; 7use Illuminate\Contracts\Pagination\Presenter as PresenterContract; 8use App\Http\Pagination\UrlWindowPresenterTrait; 9use Illuminate\Pagination\BootstrapThreeNextPreviousButtonRendererTrait; 10use Illuminate\Pagination\UrlWindow; 11  12class FrontPaginationPresenter implements PresenterContract 13{ 14  15    use BootstrapThreeNextPreviousButtonRendererTrait, 16        UrlWindowPresenterTrait; 17  18    protected $paginator; 19    protected $window; 20  21    public function __construct(PaginatorContract $paginator, UrlWindow $window = null) 22    { 23        $this->paginator = $paginator; 24        $this->window = is_null($window) ? UrlWindow::make($paginator) : $window->get(); 25    } 26  27    public function hasPages() 28    { 29        return $this->paginator->hasPages(); 30    } 31  32    // レンダリング 33    public function render() 34    { 35        if ($this->hasPages()) { 36            return new HtmlString(sprintf( 37                            '<ul class="pagination">%s %s %s %s %s</ul>', $this->getFirstButton(), $this->getPreviousButton(), $this->getLinks(), $this->getNextButton(), $this->getLastButton() 38            )); 39        } 40  41        return ''; 42    } 43  44    // 通常のタグ 45    protected function getAvailablePageWrapper($url, $page, $rel = null) 46    { 47        $rel = is_null($rel) ? '' : ' rel="' . $rel . '"'; 48  49        return '<li><a href="' . htmlentities($url) . '"' . $rel . '>' . $page . '</a></li>'; 50    } 51  52    // リンク無効な文字列のタグ 53    protected function getDisabledTextWrapper($text) 54    { 55        return '<li class="disabled"><span>' . $text . '</span></li>'; 56    } 57  58    // 現在のページ 59    protected function getActivePageWrapper($text) 60    { 61        return '<li class="active"><span>' . $text . '</span></li>'; 62    } 63  64    protected function getDots() 65    { 66        return $this->getDisabledTextWrapper('...'); 67    } 68}

php

1<?php 2namespace App\Http\Pagination; 3  4trait UrlWindowPresenterTrait 5{ 6    use \Illuminate\Pagination\UrlWindowPresenterTrait; 7  8    protected function getFirstButton($text = 'First') 9    { 10        if ($this->paginator->currentPage() <= 1) { 11            return $this->getDisabledTextWrapper($text); 12        } 13  14        return $this->getPageLinkWrapper( 15                        $this->paginator->url(1), $text, 'first' 16        ); 17    } 18  19    protected function getLastButton($text = 'Last') 20    { 21        if (!$this->paginator->hasMorePages()) { 22            return $this->getDisabledTextWrapper($text); 23        } 24  25        return $this->getPageLinkWrapper( 26                        $this->paginator->url($this->lastPage()), $text, 'last' 27        ); 28    } 29}

投稿2016/12/29 00:47

編集2017/01/04 00:54
motuo

総合スコア3027

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

lightwill

2016/12/30 06:19

すいません、Laravel5.0でした。
motuo

2017/01/04 00:54

バージョンが違うので検証が上手くできないのですが、参考サイトを回答に貼り付けてみました。
lightwill

2017/01/04 14:45

ほんの少し文言を変えたいだけなのに結構な修正が必要なんですね。 回答ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問