路由中的laravel 5.5错误 - InvalidArgumentException未定义路由[login]

时间:2018-05-30 03:33:04

标签: php laravel authentication routes kernel

我将这个代码替换为我的web.php,与laravel 5.2中的代码相同,现在使用laravel 5.5,我在5.2版本中没有任何错误。

Route::get('/home', function () {
return view('home');
});
Route::get('/register', 'registerController@index');
Route::post('/register', 'registerController@register');
Route::get('/signin', 'signinController@index');
Route::post('/login', 'signinController@login');
Route::get('/logout', ['uses'=>'signinController@logout'])->middleware('auth');
Route::get('/profile', ['uses'=>'profileController@index'])->middleware('auth');
Route::get('/updateprofile', ['uses'=>'profileController@updateprofile'])->middleware('auth');
Route::post('/updateprofile', ['uses'=>'profileController@updateprofilesave'])->middleware('auth');
Route::post('/updateprofiles', ['uses'=>'profileController@updatechannelart'])->middleware('auth');
Route::get('/changepassword', ['uses'=>'profileController@indexpassword'])->middleware('auth');
Route::post('/changepassword', ['uses'=>'profileController@changepassword'])->middleware('auth');
Route::get('/article', 'articleController@index');
Route::get('/searchuser', ['uses'=>'searchController@index']); //Untuk searching user
Route::get('/searchuserpage', ['uses'=>'searchController@searchuser']); //searching user jquery 
Route::get('/photos', ['uses'=>'documentationController@indexphoto'])->middleware('auth');

然后我尝试访问url / profile,这意味着首先需要进行身份验证,并向我显示错误InvalidArgumentException Route [login] not defined.如何解决此问题。三江源

这是我的Authenticate.php代码

public function handle($request, Closure $next)
{
    if(Auth::Check()){
        return $next($request);
    }
    else{
        return redirect('/signin');
    }
}

3 个答案:

答案 0 :(得分:2)

问题来自这样一个事实,即在您的代码实例化的某个地方,您指的是一个名为“登录”的命名路由。但是你的web.php文件中没有定义它。

遇到此问题的一个示例是,您可能有一个重定向指向此路径,隐藏在您的某个控制器中,例如:

return redirect()->route('login');

要解决此问题,请将名称应用于适用的路线。

Route::post('/login', 'signinController@login')->name('login');

答案 1 :(得分:0)

这是指定路线的问题。请确保使用指定路线的所有地方。

Route::get('/signin', 'signinController@index')->name('login')

在这里,您可以看到我将此路由命名为login,我可以使用route('login')辅助方法在任何地方调用此路由。

答案 2 :(得分:0)

当您在项目中调用路线时,您必须定义路线名称

如:

<form action:"{{route('login')}}" method="post">

和路线:

Route::post('/signin', 'signinController@index')->name('login')
相关问题