Laravel 5.2 分页

Posted

技术标签:

【中文标题】Laravel 5.2 分页【英文标题】:Laravel 5.2 paginating 【发布时间】:2016-05-01 16:17:16 【问题描述】:

我使用这种方式为我的网站进行了分页,但仍然出现错误!我试图解决,我搜索了很多,没有找到解决方案。我希望你能帮助我。

控制器 -

class ContentController extends MasterController 


    public function content() 
$content = content::all()->paginate(10);  
$content->setPath('content'); //Customise Page Url
return view('content.boot',compact('content'));



查看 -

@extends('master')
@section('content')

@if(count($content) > 0 )

@foreach($content as $row)

<video  controls>
    <source src=" asset('videos/' . $row['video'] )" type="video/mp4">
</video>
@endforeach
@endif

!! $content->render() !! 

@endsection

路线 -

Route::get('/', 'ContentController@content');

错误 -

Macroable.php 第 81 行中的 BadMethodCallException: 方法分页不存在。

【问题讨论】:

【参考方案1】:

去掉 all() 函数,你的代码应该是:

$content = content::paginate(10);  

【讨论】:

非常感谢,帮助了我,但现在它出现在视频后面,它的粘性可以说,我怎样才能让它在底部?谢谢【参考方案2】:

按照 Gouda Elalfy 的建议,您应该删除对 all() 的调用。

说明

Eloquent\Builder 上的方法 paginate() 可用,这是您调用 content::paginage(10) 时隐含的方法。

但是content::all() 返回一个CollectionModel 的数组,而不是Builder

【讨论】:

非常感谢,帮助了我,但现在它出现在视频后面,它的粘性可以说,我怎样才能让它在底部?谢谢【参考方案3】:

这里解释了如何做到这一点https://laravel.com/docs/5.2/pagination 并基于此,您应该这样做: 1)在您的控制器中更改行 $content = content::all()->paginate(10); 成为 $content = content::paginate(10); 2)在您看来,您可以使用它 $content->appends(Request::except('page'))->links() 这会做你想做的!

【讨论】:

以上是关于Laravel 5.2 分页的主要内容,如果未能解决你的问题,请参考以下文章

在laravel 5.2中带有分页()的不同()不起作用

laravel 5.2 分页链接中添加随机字符

如何在Laravel 5.2中构建搜索URL分页?

Select2 Ajax Laravel 5.2 - 分页结果不起作用?

如何改进我的查询以防止“PHP 致命错误:允许的内存大小”(laravel 5.2 中的排序和分页)

Laravel 手动分页实现