我有 2 个包含用户和管理员名称的表。
用户:id、用户名、密码、admin_id
管理员:身份证、邮箱
我使用来自用户表的默认用户名的 laravel UI 登录。我想使用用户名和电子邮件进行登录身份验证。用户名存储在 users 表中,电子邮件存储在 admins 表中
public function username()
{
$login = request()->login;
$field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username';
if ($field == 'username') {
User::where('username', $login)->first();
request()->merge([$field => $login]);
return $field;
} else {
User::whereHas('admin', function ($q) use ($login) {
$q->where('email', $login);
})->first();
request()->merge([$field => $login]);
return $field;
}
}