0

我有 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;
    }
}
4

0 回答 0