我试图在“用户”表和“用户配置文件”表之间建立一个非常简单的关系。每个用户都有一个 user_profile,所以它是一个简单的一对一。根据@ http://four.laravel.com/docs/eloquent#one-to-one找到的文档,我已将以下功能添加到我的用户模型中:
public function user_profile()
{
return $this->hasOne('User_profile');
}
这是我的 User_profile 模型中定义的关系:
public function user()
{
return $this->belongsTo('User');
}
我正在尝试像这样从控制器访问:
// Get current user
$user = User::find(Auth::user()->id);
$profile = $user->user_profile;
print_r($user);
print_r($profile);
echo "User's name is: " . $user->user_profile->first_name . ' ' . $user->user_profile->last_name;
不幸的是,打印 $user 可以很好地打印出 User 模型字段,但没有显示任何关系痕迹;$profile 为空。'relations' 数组也是空的,我猜它可能应该被填充。
我正在尝试使用此处建议的“动态属性” http://four.laravel.com/docs/eloquent#dynamic-properties
否则,如果我只是去:
echo "User's name is: " . $user->user_profile()->first()->first_name . ' ' . $user->user_profile()->first()->last_name;
它有效..但我真的不喜欢这样做。
有什么建议么?