【问题标题】:Laravel Eloquent Paginate Doesn't Exist ErrorLaravel Eloquent Paginate 不存在错误
【发布时间】:2019-01-14 07:55:14
【问题描述】:

我正在尝试在 Laravel 刀片/视图中设置分页,但它在以下消息中显示错误:

BadMethodCallException

方法 Illuminate\Database\Eloquent\Collection::paginate 不存在。

控制器

public function view()
{
    $user = Auth::user();
    $basic_info = User::find($user->id)->basic_info;
    $category = Category::all()->paginate(10); 

    return view('admin.article.category-view')->with(['user' => $user, 'basic_info' => $basic_info, 'category' => $category]);
}

查看刀片 (admin.article.category-view)

<div class="panel-body">
    <table class="table table-hover">
        <thead>
        <tr>
            <th>Category Name</th>
        </tr>
        </thead>
        <tbody>
        @foreach($category as $cat)
            <tr>
                <td>{{ $cat->name }}</td>
            </tr>
        @endforeach
        </tbody>
    </table>
    {{ $category->links() }}
</div>

【问题讨论】:

    标签: php laravel pagination laravel-pagination laravel-paginate


    【解决方案1】:

    仅在查询构建器或 Eloquent 查询上使用分页方法,而不是在集合上,如下所示:

    public function view()
    {
        $user = Auth::user();
        $basic_info = User::find($user->id)->basic_info;
        $category = Category::paginate(10); 
    
        return view('admin.article.category-view')->with(['user' => $user, 'basic_info' => $basic_info, 'category' => $category]);
    }
    

    【讨论】:

      【解决方案2】:

      你需要删除all():

       $category = Category::paginate(10); 
      

      当您使用all() 时,您会从表中获取所有行并获取一个集合

      您只能在Query 上调用"paginate",而不能在Collection 上调用。

      【讨论】:

      • 成功了。现在我可以理解集合是如何工作的了。非常感谢您启发我。
      猜你喜欢
      • 2020-10-25
      • 2019-12-11
      • 2020-02-04
      • 1970-01-01
      • 2015-03-21
      • 1970-01-01
      • 2019-05-16
      • 2018-04-05
      • 2021-06-08
      相关资源
      最近更新 更多