2016-05-01 9 views
0

Ich bekomme Ergebnisse von Produkten in Kategorie Seite. Und ich habe System, um ausverkaufte Produkte zu verstecken.Laravel 5.2 Redirect to Seite Query String

Denken Sie, dass es zehn Seiten für alle Produkte in der Kategorie gibt. Wenn ich das Kontrollkästchen ankreuze, blende ausverkaufte Produkte aus. Das System gibt zurück? Page = 10 Aber es gibt kein Produkt in? Page = 10

Ich entschied mich für das Redict-System.

$products = (new Product)->getProductsOfCategory($category->id); 
$last_page = $products->lastPage(); 

if(request()->has('page')) 
{ 
    if(request()->get('page') > $last_page) 
    { 
     $location = categoryUrl($category->id, $category->category, NULL, NULL, $last_page); 
     //Output: http://dtl/en/cat/authentic-purses/120?page=7 
     return redirect()->to($location); 
    } 
} 

Aber ich bin immer Fehler

Method [links] does not exist on Redirect.

Produkte $ ist paginierte Daten.


UPDATE:

public function getProductsOfCategory($category_id){ 
    $query = $this->where('category_id', $category_id); 
    $query = $this->productFilter($query); 

    $query = $this->productSorting($query); 
    return $query->paginate(18); 
} 

Wie kann ich diesen Fehler beheben?

+0

Wir Code sind hier fehlt. Können Sie die Ausgabe von '$ location' ausgeben? Außerdem - würde ich raten, zu untersuchen, warum das System eine Seite ohne Produkte zurückgibt, anstatt zu aktualisieren, was passiert, wenn ein Benutzer dorthin geht. – CmdrSharp

+0

i aktualisierte Ausgabe des Standorts –

+0

System gibt eine Seite ohne Produkte zurück. Weil ich auf derselben Seite poste. Zeigt nur in Aktien an. –

Antwort

0

Vor allem getProductsOfCategory sollte Instanz Illuminate\Pagination\Paginator Kehren Sie dann irgendwo in Ihrem Teilansicht Sie es Methode $products->links() yo Ansicht Paginierung Abschnitt auf der Website verwendet werden soll.

Dieser Fehler erhalten Sie, wenn Sie diese Methode auf ein fehlerhaftes Objekt zum Beispiel aufrufen: redirect()->links().

Wenn das nicht hilft, sollten Sie hier Ihre Teilansicht einfügen.

+0

Wenn ich dd $ products-> links() bekomme ich Ergebnis. diese Methode ist eine Instanz von Paginator –

+0

Ok dann zeigen Sie den Körper von: 'getProductsOfCategory' Methode. –

0

Ich löste das Problem ohne Laravel Redirect-Methode zu verwenden.

header("Location: ".$location); 
die(); 

funktioniert statt

return redirect()->to($location) 
+0

Froh, dass Sie es gelöst haben! Als Nebenbemerkung könnte man einfach 'exit (header (" Location: ". $ Location));'. Markieren Sie Ihre eigene Antwort als Gelöst! :) – CmdrSharp