#laravel
#laravel
Вопрос:
У меня проблемы с laravel 8, я использую аутентификацию laravel по умолчанию, но, похоже, после входа в систему я не могу перенаправить на домашнюю страницу. Я только что добавил это в LoginController public function username() { return 'username'; }
Вот моя таблица protected $table = 'TO_USER_LOGIN';
, я также добавил заполняемые файлы.
мой HomeController в порядке, просто он не позволяет мне перенаправлять на домашнюю страницу. protected $redirectTo = RouteServiceProvider::HOME;
Также имеет значение по умолчанию '/home'
LoginView
<div class="container">
<!-- Outer Row -->
<div class="row justify-content-center">
<div class="col-xl-10 col-lg-12 col-md-9 col-sm-12">
<div class="card o-hidden border-0 shadow-lg my-5">
<div class="card-body p-0">
<!-- Nested Row within Card Body -->
<div class="row">
<div class="col-lg-6 d-none d-lg-block bg-login-image"></div>
<div class="col-lg-6">
<div class="p-5">
<div class="text-center">
<h1 class="h4 text-gray-900 mb-4">TRAVEL ORDER SYSTEM</h1>
</div>
<form method="POST" class="user" action="{{ route('login') }}">
@csrf
<div class="form-group">
<input id="username" type="text" placeholder="Username" class="form-control form-control-user @error('username') is-invalid @enderror" name="username" value="{{ old('username') }}" required autocomplete="off" autofocus>
@error('username')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
<div class="form-group">
<input id="password" type="password" placeholder="Password" class="form-control form-control-user @error('password') is-invalid @enderror" name="password" required autocomplete="off">
@error('password')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
<button class="btn btn-lg btn-primary btn-block" type="submit">Sign in</button>
</form>
<hr>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
LoginController
<?php
namespace AppHttpControllersAuth;
use AppHttpControllersController;
use AppProvidersRouteServiceProvider;
use IlluminateFoundationAuthAuthenticatesUsers;
use IlluminateSupportFacadesAuth;
use IlluminateSupportFacadesRedirect;
class LoginController extends Controller
{
/*
|--------------------------------------------------------------------------
| Login Controller
|--------------------------------------------------------------------------
|
| This controller handles authenticating users for the application and
| redirecting them to your home screen. The controller uses a trait
| to conveniently provide its functionality to your applications.
|
*/
use AuthenticatesUsers;
/**
* Where to redirect users after login.
*
* @var string
*/
//protected $redirectTo = RouteServiceProvider::HOME;
/**
* Create a new controller instance.
*
* @return void
*/
public function redirectTo(){
Redirect::route('home');
}
public function username()
{
return 'username';
}
public function __construct()
{
$this->middleware('guest',['except' => ['logout', 'userLogout']]);
}
public function userLogout(){
Auth::guard('web')->logout();
return redirect('/');
}
}
Комментарии:
1. есть ли какая-либо ошибка? или каково состояние после входа в систему? вы только сказали, что не можете, но ЧТО происходит на самом деле.
2. @Psycho Да, я забыл это написать, не было никакой ошибки, даже когда я ее проверял. После отправки он просто перенаправляет меня на страницу входа в систему снова.
3. может быть, ваш логин не работает, и вы не показали никакого сообщения об ошибке? Пожалуйста, добавьте свой контроллер входа в свой вопрос
4. @Psycho Я проверяю его снова и снова, он выдает мне код состояния 302, я просто использую аутентификацию Laravels по умолчанию. также добавлен контроллер входа.
Ответ №1:
Я наконец нашел проблему! Это было с моей таблицей все это время, laravel искал столбец id
, которого нет в моей таблице, вместо этого он имеет увеличенный UserID
, поэтому я изменил его на id
, и это сработало! Ошибки не было, поэтому, по сути, я пытался думать как можно больше, даже пытался создать новый проект, просто чтобы посмотреть, есть ли у меня проблемы с моим текущим.