Я создаю веб-страницу на основе Laravel. Я использую Laravel Framework 5.8.11
Я пытаюсь сделать одну форму входа, которая будет использовать пользователей из двух таблиц SQL. Таблицы "лица" и "компании".
Они оба должны войти на один модальный логин, который я использую. Итак, один логин (электронная почта и пароль), и после входа в систему им необходимо получить представление о том, к какой таблице они принадлежат, отдельным лицам или компаниям.
Я не знаю, что я делаю не так?
У меня должен быть только один логин, а не два отдельных.
Я пытался сделать новых охранников.
Я добавил protected $guard = 'company';
и один для людей к моделям.
После этого я добавил охранников и провайдеров в config / auth.php
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'token',
'provider' => 'users',
'hash' => false,
],
'person' => [
'driver' => 'session',
'provider' => 'persons',
],
'company' => [
'driver' => 'session',
'provider' => 'companies',
],
],
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\User::class,
],
'person' => [
'driver' => 'eloquent',
'model' => App\Model\Person::class,
],
'company' => [
'driver' => 'eloquent',
'model' => App\Model\Company::class,
],
],
После этого я отредактировал Http / Controllers / Auth / LoginController.php
...
public function __construct()
{
$this->middleware('guest')->except('logout');
$this->middleware('guest:person')->except('logout');
$this->middleware('guest:company')->except('logout');
}
...
public function frontendLogin(Request $request) {
if(request()->isMethod('post')){
//form validation
request()->validate([
'email' => 'required|string|email',
'password' => 'required'
]);
if (Auth::guard('person')->attempt(['email' => $request->email, 'password' => $request->password], $request->get('remember'))) {
return redirect()->intended(route('contact'));
}
if (Auth::guard('company')->attempt([
'email' => request('email'),
'password' => request('password'),
'active' => 1,
'deleted' => 0,
])){
return redirect()->intended(route('homepage') );
}
}
return view('homepage');
Маршруты, которые я разместил после входа, только для проверки. Они определены.
После создания вида входа в систему и попытки входа в систему я получаю 404 для маршрута / дома.
Этот маршрут не определен, и я не знаю, почему он перенаправляет меня туда