我正在使用Auth::user()
获取有关当前登录用户的信息。现在我想扩展Auth::user()
提供的信息。具体的用户的激活状态应该可用。
此信息存储在州列中的表激活中。
根据我的理解Auth::user()
提供将从用户模型中恢复的内容。所以我应该在表用户和表激活之间建立关系。 documentation状态2 posibilites都要求激活表有一个foreign_key user_id 。
我的表格布局没有涵盖这一点,我只是在用户表中引用 actvtion_id 。
是否有可能与我的表格布局建立关系,这导致了期望的结果,Auth::user()
提供了激活状态?如果我该怎么办?
或者我是否必须按照文档中的建议切换表格布局?
在我的表格代码下面:
控制器:
class ProfileController extends Controller {
public function me()
{
return Auth::user( );
}
}
用户(迁移):
Schema::create('users', function(Blueprint $table)
{
$table->increments('id');
$table->string('email')->unique();
$table->integer('activation_id')->unsigned();
$table->foreign('activation_id')->references( 'id' )->on( 'activations' );
//...
$table->timestamps();
});
激活(迁移):
Schema::create('activations', function(Blueprint $table)
{
$table->increments('id');
$table->string('activationStatus', 1)->nullable()->default('N');
// ...
$table->timestamps();
});
答案 0 :(得分:0)
首先,您需要在用户模型中定义模型关系:
public function activation()
{
return $this->belongsTo('App\Activations', 'activation_id');
}
现在,您可以轻松地从经过身份验证的用户延迟加载激活关系:
$user = Auth::user()->load('activation');
如果您想获得激活状态,您现在可以:
var_dump($user->activation->activationStatus); // Prints 'Y' / 'N'