я заменяю свой 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 / профилю, что означает необходимость аутентификации в первую очередь, и это показывает мне ошибку InvalidArgumentException Route [login] not defined.
Как решить эту проблему. благодарю вас
это мой код для Authenticate.php
public function handle($request, Closure $next)
{
if(Auth::Check()){
return $next($request);
}
else{
return redirect('/signin');
}
}
когда вы называете маршрут в вашем проекте, вы должны определить название маршрута .
такие как :
<form action:"{{route('login')}}" method="post">
и в маршруте:
Route::post('/signin', 'signinController@index')->name('login')
Проблема заключается в том, что где-то в вашем коде после создания экземпляра вы ссылаетесь на именованный маршрут, называемый «логин», но он не определен в вашем файле web.php.
Пример решения этой проблемы: у вас может быть перенаправление, указывающее на этот маршрут, куда-то спрятанный в одном из ваших контроллеров, например:
return redirect()->route('login');
Чтобы устранить эту проблему, примените имя к соответствующему маршруту.
Route::post('/login', 'signinController@login')->name('login');
Это проблема с именованными маршрутами. Пожалуйста, убедитесь, что во всех местах названные маршруты используются.
Route::get('/signin', 'signinController@index')->name('login')
Здесь вы можете видеть, что я назвал этот маршрут login
и я могу назвать этот маршрут в любом месте, используя route('login')
вспомогательный метод.