我的laravel应用程序要求用户可以拥有多个可用于登录的电子邮件地址。
我的问题是,如何允许用户在一个帐户下拥有多个电子邮件地址?我必须记住,每封电子邮件只能由一个用户使用。
我的想法是为电子邮件设置一个单独的表格,其中我将包含用户ID。我仍然想要使用Auth类,并且想知道这是否可能?
答案 0 :(得分:3)
您可以拥有一个用户表,其中包含一个链接到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();
});
}
然后在您的电子邮件模型中创建一对多关系。
class Email extends Eloquent {
public function user()
{
return $this->belongsTo('User');
}
}
并更新用户模型。
class User extends Eloquent {
public function emails()
{
return $this->hasMany('Email');
}
}
在视图中请求来自用户的电子邮件。
// using Blade
<ul>
@foreach($user->emails as $email)
<li>{{ $email }}</li>
@endforeach
</ul>
或者您也可以使用Auth Class。
Auth::user()->emails
而不是$ user-&gt;电子邮件