Laravel 5 未找到函数 ()

Laravel 5 Function () not found

我正在建立一个网站,其中有一个受保护的部分,用户必须登录才能访问。我在 Laravel 4 中完成了此操作,没有发生太多意外。然而,对于我的生活,我无法弄清楚为什么我不能让它在 Laravel 5(L5) 中工作。

在L5中间件was/were中介绍。这会将路由文件更改为:

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

只要不包含中间件,路由就可以正常工作。

当使用中间件访问路由时,结果并不那么有趣。

Whoops, looks like something went wrong.

ReflectionException in Route.php line 150:

Function () does not exist

非常感谢任何见解、帮助和and/or 帮助。我已经完成了 Google 电路,但找不到与我当前困境相关的任何内容。提前致谢。

您忘记了 uses 键 :

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

如果你在路由中添加的不仅仅是你的控制器方法,你需要添加 uses 作为你的控制器数组的键,所以例如如果我没有任何中间件就足够了:

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

但是如果你想添加中间件你需要这样写:

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

如果您不为视图使用控制器而只想显示视图,您应该这样做:

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