Laravel 方法 [index@index] 不存在

Laravel Method [index@index] does not exist

我有 Laravel 4.2 个应用程序并将其更新为 Laravel 5.4。为此,我安装了新的 Laravel 5.4 并迁移了路由、控制器视图等

我想保护 /warehouse 之后的所有页面,例如 /warehouse/dashboard、/warehouse/accounts 等等,除了 /warehouse/login 页面。我已经搜索并使用了这条路线,但它无法正常工作。

谁能告诉我正确的身份验证方法是什么。

Route::group(['middleware' => ['auth']], function() {
         // uses 'auth' middleware
         Route::resource('/warehouse','WarehouseController@index');
    });

我的登录和验证路线是

Route::get('/warehouse/login', array('as' => 'WarehouseAdminLogin', 'uses' => 'WarehouseController@login'));

Route::post('/warehouse/verify', array('as' => 'WarehouseAdminVerify', 'uses' => 'WarehouseController@verify'));

对于Route:resource,控制器后无需添加函数名。

所以试试这个:

Route::resource('/warehouse','WarehouseController');

对于 Auth 中间件,您可以这样做:

Route::middleware(['auth']->group(function() {
  // Auth routes
});

很明显,登录路由不应该在 auth 中间件内! 新来宾用户如何查看登录页面? 在 auth 中间件之外使用 Auth 路由:

Route::get('login', 'Auth\LoginController@showLoginForm')->name('login');
Route::post('login', 'Auth\LoginController@login');
Route::get('logout', 'Auth\LoginController@logout')->name('logout');