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.
3 réponses
vous avez oublié le uses
:
Route::get('foo/bar/{id}', ['middleware'=>'auth', 'uses'=>'FooController@show']);
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']);
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');
}]);