Laravel 5.2 分页

8
我使用这种方式为我的网站制作分页,但仍然出现错误!我尝试解决并进行了大量搜索,但没有找到解决方案。希望你能帮助我。
控制器 -
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 width="330" controls>
    <source src="{{ asset('videos/' . $row['video'] )}}" type="video/mp4">
</video>
@endforeach
@endif

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

@endsection

路由 -

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

错误 -

在 Macroable.php 文件的第 81 行中出现了 BadMethodCallException 异常:
方法 paginate 不存在。

3个回答

15

删除all()函数后,您的代码应该是:

$content = content::paginate(10);  

非常感谢,帮了我很大的忙, 但现在它似乎是粘在视频后面的,怎么让它在底部呢?谢谢。 - Fadee

7
如Gouda Elalfy所建议,您应该删除对all()的调用。
解释
方法paginate()可在Eloquent\Builder上使用,这是您在调用content::paginage(10)时隐含地拥有的。
但是,content::all()返回一个CollectionModel数组,而不是Builder

非常感谢,帮了我很大的忙, 但现在它似乎是粘在视频后面的,怎么让它在底部呢?谢谢。 - Fadee

4
这里解释了如何操作:https://laravel.com/docs/5.2/pagination。根据它,您需要做以下事情:
1)在您的控制器中,将以下代码 $content = content::all()->paginate(10); 修改为 $content = content::paginate(10);
2)在您的视图中,您可以使用以下代码
{{ $content->appends(Request::except('page'))->links() }}
这样就能实现您想要的功能啦!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接