Why not just have one table and use roles.
Or if using two tables you have to pull the employee from employee table.
Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.
I'm working on a project where I have Admin and Employee, I want the two of this user to login using one login form provided by laravel. This two users have a separate table.
This is the guard I define;
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'admins',
],
'employee' => [
'driver' => 'session',
'provider' => 'employees',
],
'api' => [
'driver' => 'token',
'provider' => 'users',
'hash' => false,
],
],
'providers' => [
'admins' => [
'driver' => 'eloquent',
'model' => App\Admin::class,
],
'employees' => [
'driver' => 'eloquent',
'model' => App\Employee::class,
],
],
And I Overwrite attemptLogin in LoginController
protected function attemptLogin(Request $request){
$customerAttempt = Auth::guard('employee')->attempt(
$this->credentials($request), $request->has('remember')
);
if(!$customerAttempt){
return Auth::guard()->attempt(
$this->credentials($request), $request->has('remember')
);
}
return $customerAttempt;
}
But is not working...I can't login with the employee user, it always return null when I dd(Auth::user());
Please or to participate in this conversation.