Logowanie użytkowników, którzy są w innych tabelach (laravel)

0

Mam taki problem mam 3 tabele użytkowników pierwsza to admin druga to doctors a trzecia to sekretarki i teraz chodzi mi o to żeby można było się zalogować na admina odzielnie i na lekarza wiem, że można użyć roli i jednej tabeli tylko, że te 3 tabvele różnią się strukturą i teraz wyczytałem takie rozwiązanie

    public function login_action() {
        $admin = array(
            "login" => Input::get("login"),
            "password" => Input::get("password")
            
        );
        if (Input::get('login') == "" or Input::get('password') == "" ) {
            return Redirect('/admin/login')->with('error','Uzupełnij pole login i hasło');
        }
        if (Auth::guard('admin')->attempt($admin)) 
        {
            return View("main_admin");
        }
        else {

            return Redirect('/admin/login')->with('error','Nieprawidłowy login lub hasło');
        }
        
    }

Ale to nie działa.

Jeszcze plik auth.php w config

   'admin' => [
       'web' => [
           'driver' => 'sessions',
           'provider' => 'admins',
           
       ],
       'api' => [
           'driver' => 'token',
           'provider' => 'admins',
           
       ],
       
   ],

I teraz przy próbie logowania dostaje taki komunikat
Auth guard [admin] is not defined.

2

Robisz to źle :)
Czemu nie możesz w jednej tabeli trzymać loginu i hasła i dodatkowo trzymać typu konta? Wszelkie dane którymi różnią się te typy kont trzymaj już w innych tabelkach(z kluczem obcym do tej głównej tabeli).

0

@axelbest: masz rację :) Robi to trochę źle

@pol90
Też bym użył trochę innej struktury bazy danych ale skoro się upierasz przy logowaniu z użyciem kilku tabel to proszę:
https://scotch.io/@sukelali/how-to-create-multi-table-authentication-in-laravel

I jeszcze jedno:
https://stackoverflow.com/questions/46292391/authenticate-users-from-more-than-two-tables-in-laravel-5

Mam nadzieję, że Ci to wytłumaczy na czym polega Twój błąd (chodzi o Auth guard [admin] is not defined)

0

Single/Multiple Table Inheritance. Niestety Laravel nie wspiera żadnego natwynie, a paczka jest tylko do single table, ale warto znać.

0

Zostaje rozwiązanie typu "szukamy czy dany zestaw login i hasło" pasuje gdzieś do jednej z tych tabel. Brzydkie rozwiązanie ale cóż...

Można jeszcze zrobić to metodą taką, że przy logowaniu wybieramy (przykładowo z pola select), że jesteśmy lekarzem/sekretarką itd. i w zależności od wyboru sprawdzać daną tabelę.

1 użytkowników online, w tym zalogowanych: 0, gości: 1