Fonction Laravel 5 () non trouvé

je suis en train de monter un site qui a une section protégée où les utilisateurs doivent être connectés pour y accéder. J'ai fait ça à Laravel 4 sans trop d'incident. Cependant, pour ma part, Je ne comprends pas pourquoi Je ne peux pas le faire fonctionner à Laravel 5(L5).

L5 middleware a été/ont été introduites. Cela modifie le fichier de route:

Route::get('foo/bar', ['middleware'=>'auth','FooController@index']);
Route::get('foo/bar/{id}', ['middleware'=>'auth','FooController@show']);

la route fonctionne bien tant que l'middleware n'est pas inclus.

quand on accède à la route avec le middleware cependant, le résultat n'est pas tellement amusant.

Oups, on dirait que quelque chose s'est mal passé.

Réflectionexception en Route.php la ligne 150:

Function () n'existe pas

toute idée, AIDE et / ou assistance est très appréciée. J'ai fait le circuit Google et je n'ai rien trouvé de pertinent à ma situation actuelle. Merci à l'avance.

32
demandé sur manix 2015-02-13 08:12:22

3 réponses

vous avez oublié le uses:

Route::get('foo/bar/{id}', ['middleware'=>'auth', 'uses'=>'FooController@show']);
78
répondu manix 2015-05-03 06:47:05

Si vous ajoutez quelque chose de plus que votre méthode de contrôleur dans vos routes, vous devez ajouter uses comme clé du tableau pour votre controller, donc par exemple si je n'ai pas d'middleware, il suffit d'écrire:

Route::get('foo/bar', 'FooController@index');
Route::get('foo/bar/{id}', 'FooController@show');

Toutefois, si vous souhaitez ajouter middleware, vous devez écrire:

Route::get('foo/bar', ['middleware'=>'auth','uses' => 'FooController@index']);
Route::get('foo/bar/{id}', ['middleware'=>'auth','uses' => 'FooController@show']);
8
répondu Marcin Nabiałek 2015-02-13 05:52:27

dans le cas où vous n'utilisez pas de controller pour votre vue et que vous voulez juste afficher la vue, vous devriez faire ceci:

Route::get('foo/bar', ['middleware' => 'auth', function () {
    return View::make('path.to.your.page');
}]);
4
répondu paulalexandru 2015-10-30 10:51:42