2014-09-23 3 views
0

Вот моя категория модель:Невозможно использовать нумерацию страниц на hasMany отношения

public function products() { 
    return $this->hasMany('Product'); 
} 

Тогда я печатать все продукты, что каждая категория имеет:

@foreach($category->products as $product) 
    {{ $product->title }} 
@endforeach 

Однако он печатает каждый связанный продукт в этой категории , Как я могу использовать разбиение на страницы в этом случае? Я пытался напечатать ссылки разбивки на дне:

<div class="pager"> 
    {{ $category->products()->paginate(12)->links() }} 
</div> 

Это делает печать ссылки разбивки на страницы правильно, но когда я изменить страницу - содержание не меняется.

ответ

2

Вы хотите назвать постраничной свою продукцию первым:

public function products() { 
    return $this->hasMany('Product'); 
} 

public function recentProducts() { 
    return $this->products()->paginate(12); 
} 

Затем на ваш взгляд, вы Переберите

@foreach($category->recentProducts() as $product) 
    {{ $product->title }} 
@endforeach 

Тогда ваши ссылки

<div class="pager"> 
    {{ $category->recentProducts()->links() }} 
</div> 
+0

Вы не используете 'Paginator' как результат отношения. –

+0

Отношение находится в отдельном методе. Наличие другого метода 'recentProducts' означает, что он может повторно использовать разбитые на страницы результаты на других страницах. – RobbieP

+0

ОК, если вы не используете его как отношение, тогда да. Однако что вы подразумеваете, повторно используя его на других страницах? –

0

Pass постраничную коллекция к просмотру :

// controller 
$products = $category->products()->paginate(12); 

// view 
@foreach ($products as $product) 

    // do what you need 
@endforeach 

// links: 
$products->links(); 
4

Перед отправкой данных для просмотра первой страницы, выполните следующие действия.

$products = $category->products()->paginate(12); 

Теперь передайте это значение виду и просто выполните его повтор.

@foreach($products as $product) 
    {{$product->title}} 
@endforeach 

Для отображения ссылок просто метод ссылок на продукты в представлении.

{{$products->links()}} 
+0

Не работает. не имеет никакого эффекта. Показывает все продукты без разбивки на страницы. – Heihachi

+0

Это странно, пожалуйста, покажите свой код, какие значения вы передаете в представление, и как и что вы делаете в представлении. Можете ли вы вставить свой новый код? –

Смежные вопросы