laravel 一个帐户下有多个电子邮件地址

3 php laravel

我的 Laravel 应用程序要求用户可以拥有多个可用于登录的电子邮件地址。

我的问题是,如何允许用户在一个帐户下拥有多个电子邮件地址?我必须记住,每封电子邮件只能由一个用户使用。

我的想法是为电子邮件创建一个单独的表,其中包含用户 ID。我仍然想使用 Auth 类,并且想知道这是否可能?

Rob*_*bie 5

您可以拥有一个用户表,其中包含链接到 user_id 的单独电子邮件表。由于您使用的是 Laravel,请像这样对电子邮件表运行迁移。

public function up()
{
    Schema::create('email_table', function(Blueprint $table)
    {
        $table->primary('id');
        $table->integer('user_id');
        $table->string('email')->unique();
        $table->timestamps();
    });
}
Run Code Online (Sandbox Code Playgroud)

然后在您的电子邮件模型中创建一对多关系。

class Email extends Eloquent {

    public function user()
    {
        return $this->belongsTo('User');
    }

}
Run Code Online (Sandbox Code Playgroud)

并更新用户模型。

class User extends Eloquent {

    public function emails()
    {
        return $this->hasMany('Email');
    }

}
Run Code Online (Sandbox Code Playgroud)

在视图中向用户请求电子邮件时。

// using Blade
<ul>
@foreach($user->emails as $email)
    <li>{{ $email }}</li>
@endforeach
</ul>
Run Code Online (Sandbox Code Playgroud)

或者您也可以使用 Auth 类。

Auth::user()->emails
Run Code Online (Sandbox Code Playgroud)

而不是 $user->emails