Laravel: Route [login] not defined

I am creating an application in Laravela, and when I try to visit my url, for example: http://example.com , does it return this strange error? Does this only happen when I do not attend / cannot enter?

InvalidArgumentException in UrlGenerator.php line 304: Route [login] not defined. 

code:

 use App\Http\Controllers\Frontend; Route::group(['domain' => 'localhost', 'namespace' => 'Frontend'], function() { Route::group(['middleware' => 'guest', 'namespace' => 'Guest'], function() { Route::get('/', function() { return Redirect::to('/login'); }); Route::get('/login', ' LoginController@getView '); Route::post('/login', ' LoginController@onPost '); }); Route::group(['middleware' => 'auth', 'namespace' => 'User'], function() { Route::get('/', function() { return Redirect::to('/home'); }); Route::get('/home', ' HomeController@getView '); Route::get('/logout', ' LogoutController@performLogout '); }); }); Route::group(['domain' => 'admin.localhost'], function() { Route::get('/', function() { return 'Housekeeping will be making an appearance soon!'; }); }); 

Here is my LoginController:

 <?php namespace App\Http\Controllers\Frontend\Guest; use Auth; use App\User; use App\Http\Controllers\Controller; use Validator; use Redirect; use Illuminate\Http\Request; use App\Database\Frontend\User\Player; use App\Database\Frontend\WebsiteLogin; class LoginController extends Controller { public function getView() { return view('frontend.login'); } public function onPost(Request $request) { $validator = Validator::make($request->all(), [ 'mail' => 'required|email|exists:users', 'password' => 'required' ]); if ( $validator->fails()) { return Redirect::to('/login')->withErrors($validator->messages()); } else { if (!Auth::attempt(['mail' => $request->input('mail'), 'password' => $request->input('password')])) { $this->addNewWebsiteLogin($request, Player::where('mail', $request->input('mail'))->pluck('id')->first(), "0"); return Redirect::to('/login')->withMessage('Email and password do not match')->withColor('danger'); } else { $this->addNewWebsiteLogin($request, Auth::user()->id, "1"); $user = Auth::user(); $user->last_online = time(); $user->save(); /*if (config('frontend.government_only') && (Auth::Guest() || Auth::user()->roleplay->government_id == 0)) { Auth::logout(); return Redirect::to('/login')->withMessage(config('frontend.site_name') . ' is only open to government individuals at this moment, too bad.')->withColor('danger'); }*/ return Redirect::to('/home')->withMessage('Welcome back!'); } } } private function addNewWebsiteLogin(Request $request, $userId, $status) { $websiteLogin = new WebsiteLogin; $websiteLogin->user_id = $userId; $websiteLogin->request_ip = $request->ip(); $websiteLogin->request_system = 'TODO'; $websiteLogin->request_browser = 'TODO'; $websiteLogin->login_status = $status; $websiteLogin->save(); } } 
+5
source share
2 answers

It looks like you are using route('login') to create a link to the login page or form.

If you use it in a link, just call get() route:

 Route::get('login', ['as' => 'login', 'uses' => ' LoginController@getView ']); 

If you use the route() helper on the form, do this for the post() route.

+5
source

You can use artisan comp php artisan make:auth to align the required authentication pages.

Here you can find the documentation, https://laravel.com/docs/5.4/authentication

+3
source

Source: https://habr.com/ru/post/1265971/


All Articles