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

Logowanie użytkowników, którzy są w innych tabelach (laravel)
pol90
  • Rejestracja:ponad 10 lat
  • Ostatnio:ponad 3 lata
  • Postów:1181
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

Kopiuj
    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

Kopiuj
   '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.

axelbest
  • Rejestracja:ponad 17 lat
  • Ostatnio:około 5 godzin
  • Lokalizacja:Warszawa
  • Postów:2251
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).

L7
  • Rejestracja:ponad 13 lat
  • Ostatnio:około 15 godzin
  • Postów:433
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)

edytowany 1x, ostatnio: leonpro778
DE
  • Rejestracja:ponad 9 lat
  • Ostatnio:11 miesięcy
  • Postów:1788
0

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

edytowany 1x, ostatnio: Desu
L7
  • Rejestracja:ponad 13 lat
  • Ostatnio:około 15 godzin
  • Postów:433
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ę.

pol90
No ja mam osobny kontroller do lekarzy i adminów .

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.