Laravel Eloquent Paginate не существует ошибки - PullRequest
0 голосов
/ 14 января 2019

Я пытаюсь установить нумерацию страниц в блейде / виде 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]);
}

Вид Blade (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>

Ответы [ 2 ]

0 голосов
/ 14 января 2019

Вам необходимо удалить all():

 $category = Category::paginate(10); 

Когда вы используете all(), вы получаете все строки из таблицы и получаете коллекцию

Вы можете вызывать "paginate" только на Query, но не на Collection.

0 голосов
/ 14 января 2019

Использование метода paginate в построителе запросов или только в запросе 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]);
}
...