2015-02-13 17 views
28

Ich stelle eine Website zusammen, die über einen geschützten Bereich verfügt, in dem Benutzer angemeldet sein müssen, um darauf zugreifen zu können. Ich habe das in Laravel 4 ohne zu viel Vorfall gemacht. Aber für mein Leben kann ich nicht herausfinden, warum ich es in Laravel 5 (L5) nicht zur Arbeit bringen kann.Laravel 5 Funktion() nicht gefunden

In L5 wurde/wurden Middleware eingeführt. Dies ändert die Routendatei zu:

Die Route funktioniert gut, solange die Middleware nicht enthalten ist.

Wenn die Route mit der Middleware zugegriffen wird, ist das Ergebnis nicht so viel Spaß.

Whoops, sieht aus wie etwas schief gelaufen ist.

Reflection in Route.php Linie 150:

Funktion() existiert nicht

Einsicht, Hilfe und/oder Unterstützung wird sehr geschätzt. Ich habe den Google-Kurs gemacht und konnte nichts finden, was für meine aktuelle Notlage relevant ist. Danke im Voraus.

Antwort

67

Sie vergessen haben, die uses Schlüssel:

Route::get('foo/bar/{id}', ['middleware'=>'auth', 'uses'=>'[email protected]']); 
+0

Dank! Ich wusste, dass es etwas sein musste, das ich einfach übersehen hatte. – joseph

+1

Danke @manix, das war hilfreich! – Picrasma

+0

/** oh nein !! ** / – gthuo

7

Wenn Sie etwas mehr als die Controller-Methode in Ihre Routen, die Sie uses als Schlüssel des Arrays für Ihren Controller hinzufügen müssen hinzufügen, so zum Beispiel, wenn ich don‘ t haw jede Middleware es genug zu schreiben:

Route::get('foo/bar', '[email protected]'); 
Route::get('foo/bar/{id}', '[email protected]'); 

Allerdings, wenn Sie Middleware hinzufügen wollen, müssen Sie schreiben:

Route::get('foo/bar', ['middleware'=>'auth','uses' => '[email protected]']); 
Route::get('foo/bar/{id}', ['middleware'=>'auth','uses' => '[email protected]']); 
4

Falls Sie keinen Controller für Ihre Ansicht verwenden und Sie wollen einfach nur die Sicht angezeigt, sollten Sie dies tun:

Route::get('foo/bar', ['middleware' => 'auth', function() { 
    return View::make('path.to.your.page'); 
}]); 
Verwandte Themen