如何检查是否在laravel中使用了paginate

时间:2016-10-11 12:55:45

标签: laravel laravel-5 pagination

我有自定义视图,在某些功能中,我使用了paginate和其他我不使用paginate的功能。现在如何检查我是否使用paginate

@if($products->links())

   {{$products->links()}}

@endif // not work 

当然我知道我可以使用变量作为true false来检查它,但是有没有任何本机函数可以检查它?

12 个答案:

答案 0 :(得分:14)

这完美无缺。检查$productsIlluminate\Pagination\LengthAwarePaginator的实例,然后显示分页链接。

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

   {{$products->links()}}

@endif

答案 1 :(得分:5)

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

简单的一个!

答案 2 :(得分:4)

试试这个

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

   {{$products->links()}}

@endif

您需要检查$productsIlluminate\Pagination\AbstractPaginator的实例。它也可以是一个数组或Laravel的Collection

答案 3 :(得分:4)

美丽的方式:

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

Click here to see the official documentation

答案 4 :(得分:2)

不要对变量的基类进行检查。这可能会导致在将来的Laravel版本中更改基类的问题。只需检查方法链接是否存在:

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

答案 5 :(得分:0)

另一种方式:

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

您可以使用PHP函数:get_class($ products) - 获取完整的类名。 Laravel应该有一些功能要检查 - > paginate()正在使用中。

答案 6 :(得分:0)

您还可以检查模型上是否存在links方法。

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

Reference

答案 7 :(得分:0)

正确的代码(添加“ isset”):

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

   {{$products->links()}}

@endif

更短版本:

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

它将适用于分页,simplePaginate以及没有分页的情况。使用“ $ products-> hasMorePages()”的解决方案将不会在最后一页上显示分页链接。

答案 8 :(得分:0)

  • 只写paginate(0)而不是get()
  • 刀片模板:只需使用{{$products->links}}。不需要@if @endif

答案 9 :(得分:0)

laravel分页有2种类型:

  • simplePaginate()将返回\ Illuminate \ Pagination \ Paginator
  • paginate()将返回Illuminate \ Pagination \ LengthAwarePaginator

根据上述条件,您可以尝试以下解决方案:

@if(
    $products instanceof \Illuminate\Pagination\Paginator ||
    $products instanceof Illuminate\Pagination\LengthAwarePaginator
  )
 {{ $products->links() }}
@endif

答案 10 :(得分:0)

按以下格式使用“ juse”

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

   {{$products->links()}}

@endif                 

答案 11 :(得分:0)

@if($products->currentPage() > 1)

   {{$products->links()}}

@endif