Как я могу сделать нумерацию методом Findorfail в Laravel - PullRequest
0 голосов
/ 01 ноября 2019

У меня есть эта функция в моем контроллере, которая является выводом многих животных, и я хотел бы разбить ее на страницы. Как мне это сделать

контроллер

public function show($id)
{
    $farms = User::with(['animals'])->findOrFail($id);
    return view('slaughter.show',compact('farms'));
}

Есть ли другой способ сделать это, потому что я попытался добавить метод paginate в конце, и я получаю ошибку

Ответы [ 3 ]

0 голосов
/ 01 ноября 2019

Вы также можете сделать это в блейд-файле.

Контроллер

public function show($id)
{
    $farms = User::with(['animals'])->findOrFail($id);
    return view('slaughter.show',compact('farms'));
}

Файл show.blade.php

@foreach ( $farms->animals()->paginate(5) as $animal)

@endforeach

Пейджер будет

{!! $farms->animals->render() !!}
{{ $farms->animals->links() }}
0 голосов
/ 01 ноября 2019

Я бы сделал это, чтобы получить коллекцию животных для пользователя. Внедрение зависимостей в методе show, а также при условии, что вам также потребуются некоторые пользовательские данные на странице убоя.

 public function show(User $user)
{
    $farms = Animals::where('user_id', $user->id)->paginate();
    return view('slaughter.show',compact('farms', 'user'));
}

Ваш маршрут нуждается в обновлении, что-то вроде этого ...

Route::get('animals/{user}', 'AnimalsController@show') 
0 голосов
/ 01 ноября 2019

paginate() - это метод в экземпляре Query Builder, в то время как findOrFail() возвращает модель Eloquent, а в данном случае - один экземпляр, как это делается для отдельного пользователя с указанным $id.

* 1005. * Вы можете запросить животных через их собственную модель и разбить их на страницы, например:
public function show($id)
{
    $farms = Animal::where('user_id', $id)->paginate(10);
    return view('slaughter.show',compact('farms'));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...