web-dev-qa-db-ja.com

laravel)で使用されているページネーションを確認する方法

カスタムビューがあり、一部の関数ではpaginateを使用しました。その他の関数はpaginateを使用していません。 paginateを使用したかどうかを確認するにはどうすればよいですか?

@if($products->links())

   {{$products->links()}}

@endif // not work 

もちろん、変数をtrue falseとして使用してチェックできることはわかっていますが、チェックするネイティブ関数はありますか?

11
S.M_Emamian

これは完全に機能します。 $productsIlluminate\Pagination\LengthAwarePaginatorのインスタンスであるかどうかを確認してから、ページネーションリンクを表示します。

@if($products instanceof \Illuminate\Pagination\LengthAwarePaginator )

   {{$products->links()}}

@endif
23
Richie
@if ($threads->hasPages())
  {{ $threads->links() }}
@endif

シンプルなもの!

13
Mo7sin

このようにしてみてください

@if($products instanceof \Illuminate\Pagination\AbstractPaginator)

   {{$products->links()}}

@endif

$productsIlluminate\Pagination\AbstractPaginatorのインスタンスであるかどうかを確認する必要があります。配列またはLaravelのCollectionにすることもできます。

6

美しい方法:

@if ($products->hasMorePages())
    {{ $products->links() }}
@endif

公式ドキュメントを表示するにはここをクリックしてください

4
Fred Vanelli

修正されたコード(「isset」を追加):

@if(isset($products->links()))

   {{$products->links()}}

@endif

短いバージョン:

{{$products->links() ?? ''}}

これは、ページネーション、simplePaginate、およびページネーションがない場合に機能します。 「$ products-> hasMorePages()」を使用したソリューションでは、最後のページにページネーションリンクが表示されません。

1
d48u

モデルにlinksメソッドが存在するかどうかを確認することもできます。

@if( method_exists($vehicles,'links') )
   {{  $vehicles ->links() }}
@endif

参照

1

別の方法:

@if (class_basename($products) !== 'Collection')
   {{ $products->links() }}
@endif

PHP function:get_class($ products)-で完全なクラス名を取得できます。Laravelチェックする関数が必要です-> paginate()が含まれています使用する。

0
  • paginate(0)の代わりにget()と書くだけです
  • ブレードテンプレート:{{$products->links}}を使用するだけです。 @if @endifは必要ありません。
0
Marvin