2016-08-05 10 views
-1

Laravel 5.2

Ich möchte testen, ob der Benutzer der Eintrag auf der Seite Fehler war, und ich möchte den Benutzer auf Ihre letzte paginate umleiten, aber ich möchte es tun geschützte Funktion mit Ressourcensteuerung mit`Return` Methode funktioniert nicht in geschützten Funktion

// Resource controller 

protected function checkPage($paginate_number){ 
    $paginate_count = Product::count()/$paginate_number; 

    if(isset($_GET['page']) && $_GET['page'] > $paginate_count){ 
     return redirect('/admin/products?page='.$paginate_count); 
    } 
} 

public function index(){ 
    $paginate_number = 3; 
    $this->checkPage($paginate_number); 

    $products = Product::paginate($paginate_number); 
    return view('admin.products-view')->withProducts($products);   
} 

Aber wenn ich return redirect(...) außerhalb der geschützten Funktion arbeiten
Wie kann ich es in protected function benutzen?

+0

wo diese 'Umleitung()' definiert ist, ein das ist nicht in pHP-Funktion eingebaut, so dass es vor der Verwendung definiert werden muss . Auch Ihre 'if' Bedingung muss wahr sein, wenn Sie sicher sind, dass es ist. Und ich nehme an, dass du es tatsächlich nennst (nicht im Beispiel gezeigt), obwohl ich nicht den Punkt sehe, auf eine Weiterleitung zurückzukehren. – ArtisticPhoenix

Antwort

0

Ich fand einen guten Weg, um dieses Problem zu lösen protected function, weil ich mit ihm umleiten kann nicht verwendet werden

Lösung:

protected function checkPage($paginate_number){ 
    $paginate_count = Product::count()/$paginate_number; 

    if(isset($_GET['page']) && $_GET['page'] > $paginate_count){ 
     // If needed to create another error page to explain current error 
     return abort(404); 
    } 
} 
0

Sie können die Umleitung nicht in einer Funktion verwenden, die nicht in der Route enthalten ist. Ihre Checkpage-Funktion wird als Unterfunktion bezeichnet, funktioniert also nicht. und ich bin mir nicht sicher, die direkte Funktion, die Sie richtig verwenden, verwende ich normalerweise die Rückkehr Redirect :: back() return Redirect :: to ('url'); `