Laravel Pagination

Как создать пагинацию в laravel?

Моя модель

Сообщение

function comments() {

return $this->hasMany('Comment')
->orderBy('created_at', 'desc');
}

Комментарий

function posts(){

return $this->belongsTo('Post');
}

пользователь

function posts(){

return $this->hasMany('Post');
}


function comments(){

return $this->hasMany('Comment');
}

UserController

$user = User::find(1); //this will give me all the user's post and comment details

//i know I can do  $user = User::paginate(30) to get 30 user per page

Чего я хочу достичь

Я хочу создать нумерацию страниц из 10 комментариев на странице.

Заранее благодарны за Вашу помощь.

3

Решение

У вас есть два варианта: вы можете позвонить paginate() на запрос отношения, или вы можете вручную создать paginator.

Вызов paginate() в запросе отношения (использует функцию отношения):

$user = User::find(1);
$comments = $user->comments()->paginate(10);

Вручную создайте paginator (использует атрибут отношений):

$user = User::find(1);
$paginator = Paginator::make($user->comments, $user->comments->count(), 10);

Документацию по пагинации можно найти Вот.

3

Другие решения

Попробуй это,

$ only10comments = User :: with (‘comments’) -> paginate (10);

Если вы используете следующие, предыдущие ссылки в нумерации страниц, тогда используйте simplePaginate.

$ only10comments = User :: with (‘comments’) -> simplePaginate (10);

Надеюсь это поможет.

1

По вопросам рекламы [email protected]