我有自定义视图,在某些功能中,我使用了paginate
和其他我不使用paginate
的功能。现在如何检查我是否使用paginate
?
@if($products->links())
{{$products->links()}}
@endif // not work
当然我知道我可以使用变量作为true false来检查它,但是有没有任何本机函数可以检查它?
答案 0 :(得分:14)
这完美无缺。检查$products
是Illuminate\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
您需要检查$products
是Illuminate\Pagination\AbstractPaginator
的实例。它也可以是一个数组或Laravel的Collection
。
答案 3 :(得分:4)
美丽的方式:
@if ($products->hasMorePages())
{{ $products->links() }}
@endif
答案 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
答案 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种类型:
根据上述条件,您可以尝试以下解决方案:
@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