【发布时间】:2013-06-02 22:46:33
【问题描述】:
我试图在“Users”表和“User_profiles”表之间建立一个非常简单的关系模型。每个用户都有一个 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;
它有效..但我真的不喜欢这样做。
有什么建议吗?
【问题讨论】:
标签: laravel laravel-4 eloquent