Один логин для двух таблиц sql - PullRequest
0 голосов
/ 02 июля 2019

Я создаю веб-страницу на основе 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 для маршрута / дома. Этот маршрут не определен, и я не знаю, почему он перенаправляет меня туда

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...