Вызов функции-члена links () в массиве в ошибке Laravel

Я работал с Laravel и пытаюсь разбить свою таблицу книг на страницы. Я получил эту ошибку «Вызов функции-члена links () в массиве в Laravel». Это может быть как ошибка дубликата, но я все еще не могу понять, как решить свою проблему.

Скрипка BookController:

public function index()
{
    $books = Book::simplePaginate(3)->all();
    $authors = Author::all();
    $genres = Genre::all();
    return view('books.all')->withBooks($books)->withAuthors($authors)->withGenres($genres);
}

книги / all.blade.php скрипка

<table class="table table-hover">
  <tr class="info">
  <td>#</td>
  <td>Name</td>
  <td>Author</td>
  <td><center>Visit</center></td>
  </tr>
  @foreach($books as $book)
  <tr>
    <td width="50px"><img width="50px" height="75px" src="{{ asset('images/' . $book->image) }}"></td>
    <td width="50px">{{ $book->name }}</td>
    <td width="50px">{{ $book->author->name }}</td>
    <td width="50px"><center><a href="{{ url('books', $book->id) }}"><button class="btn btn-success">Visit</button></a></td>
 </tr>
@endforeach
</table> 
{{ $books->links() }}

person Irfan    schedule 28.04.2017    source источник
comment
Возможный дубликат Вызов Laravel функции-члена toArray () при ошибке массива   -  person Marcin Orlowski    schedule 28.04.2017
comment
$ Books - это массив или объект?   -  person Muhammad Rizwan    schedule 28.04.2017
comment
Попробуйте $ books = DB :: table ('books') - ›paginate (3); вместо $ books = Book :: simplePaginate (3) - ›all ();   -  person Nil    schedule 28.04.2017
comment
ничего не работает   -  person Irfan    schedule 28.04.2017
comment
@MuhammadRizwan Это должен быть массив.   -  person Irfan    schedule 28.04.2017
comment
@Irfan: почему это должен быть массив, я просто спрашиваю, это массив или объект ... Если это метод array links () не работает с массивом, это должен быть объект, поэтому вы получаете ошибку   -  person Muhammad Rizwan    schedule 28.04.2017
comment
У меня такая же проблема. Получение ошибки, например, вызов функции-члена links () в массиве. Я не могу использовать коллекцию, мне нужен массив. Какое решение @Irfan   -  person Ashish    schedule 12.07.2018


Ответы (1)


Просто удалите метод -> all () из переменной $ books.

$books = Book::paginate(10);

Функция paginate () учитывает получение всего содержимого из таблицы, которая берется здесь моделью Book

person Irfan    schedule 28.04.2017