来自两个不同表的Laravel 5.6 Auth

时间:2018-10-14 07:39:53

标签: laravel laravel-5 laravel-5.5

我想询问有关登录Laravel的问题,但以另一种方式: 包含密码但不包含电子邮件的用户信息将存储在users table中,而email_address将存储在email_addresses table中,并带有一个名为is_default的布尔字段。

因此,用户可以有几封电子邮件,但是他只能使用一封is_defaulttrue的电子邮件登录。他可以通过个人资料更改默认电子邮件。

因此,如何通过Auth :: login()门面进行登录过程。

我能够通过将信息存储在users table中并将其email_address and is_default = true存储在email_addresses table中来注册用户。

1 个答案:

答案 0 :(得分:-1)

可能有点棘手。 Auth::login()仅需要获取电子邮件和密码,因此,如果您可以诱使模型认为它具有可通过$user->email访问的电子邮件字段,那么事情将会解决:

public function getEmailAttribute()
{
  return DB::table('email_addresses')->whhere('default', 1)->where('user_id', $this->id)->first()->toArray()['email'];
}