2016-06-04 5 views
0

Ich habe eine Reihe von Ergebnissen (mehr als 25 Ergebnis) aus der Datenbank abgerufen. Ich versuche Laravel Pagination in meiner Anwendung zu implementieren.Manuelle Seitenumbruch in Laravel 5.1

Was ich will ist paginate die Ergebnisse abgerufen.

Was ich bekomme ist Paginierung der gleichen Ergebnisse.

Der Code, den ich bisher verwendet haben:

$result = array_slice($fetchAllProducts, 0, 12); 

$paginateResults = new Illuminate\Pagination\LengthAwarePaginator($result, count($fetchAllProducts), 12); 

ich die Paginierung tun, aber bei der Inspektion arbeiten, auf Seite 2 auf Seite 3 und so weiter .. ich das Ergebnis bekommen, das ist sichtbar auf Seite 1 der Seitennummerierung auf allen folgenden Seiten der Seitennummerierung.

Bitte helfen Sie mir damit. Jede Hilfe wird sehr geschätzt.

EDIT 1: Der Code

<?php 
$productsInParent = $category->products; 
$productsInParentCategory = new Illuminate\Support\Collection; 
$allProducts = $allProductsFromChild = []; 

foreach($productsInParent as $prodInParent) { 
    $allProducts[] = $prodInParent; 
} 

foreach($category->childs as $child) { 
    foreach($child->products as $productsInChildren) { 
     $allProductsFromChild[] = $productsInChildren; 
    } 
} 

$fetchAllProducts = array_merge($allProducts, $allProductsFromChild); 

$result = array_slice($fetchAllProducts, 0, 12); 

$paginateResults = new Illuminate\Pagination\LengthAwarePaginator($result, count($fetchAllProducts), 12); 
?> 

PS: ich alleine zu lernen, ich versuche, wie benutzerdefinierte Paginierung in Laravel integrieren 5.1

+0

@Uchiha Ich denke, dass die Verwendung erfolgt '{!! $ paginateResults-> render() !!} 'das funktioniert völlig in Ordnung .. –

+0

Können Sie bitte Ihre Anfrage oder beredten –

+0

@Uchiha Ich habe den Code .. –

Antwort

0

Die paginator wird in der URL gesetzt machen der page Parameter, der verwendet werden sollte, um den Versatz für die Scheibe zu bestimmen:

$result = array_slice($fetchAllProducts, Request::get('page',1)-1, 12); 

Allerdings würde ich raten, die Abfrage zu ändern, um alle Ergebnisse in einer Abfrage zu erhalten und die Querybuilder paginator so etwas wie verwenden:

$categories = $catgory->childs->pluck('id')->all(); 
$categegories[] = $category->id; 

$paginateResults =Product::whereIn('category_id', $categories)->paginate(12) 
+0

Ich habe versucht, dass auch .. Es nicht einmal Zeige die Paginierung .. Stattdessen zeigte es alle Ergebnisse ohne Paginierung .... –

+0

Entschuldigung, schrieb es, ohne genug tief zu bekommen. Sie müssen die Seite beim Schneiden manuell einstellen: '$ result = array_slice ($ fetchAllProducts, Request :: get ('page', 1) -1, 12); $ paginateResults = new Illuminate \ Pagination \ LengthAwarePaginator ($ result, Anzahl ($ fetchAllProducts), 12); ' – iipavlov