【发布时间】:2017-10-12 23:16:22
【问题描述】:
我有以下模型和相应的表格:
用户(users)、UserProfile(user_profiles)、评论(reviews)
架构
table: users
user_id (primary key)
first_name
last_name
table: user_profiles
user_id (foreign key)
country
phone
table: reviews
reviewer_id (the user who posted the review)
user_id (foreign key)
body
我使用以下内容查询数据库:
$user = User::with('profile', 'review')->find(Auth::User()->user_id);
部分用户模型
public function profile(){
return $this->hasOne(UserProfile::class, 'user_id');
}
public function review(){
return $this->hasOne(Review::class, 'user_id');
}
UserProfile 模型的一部分
public function users() {
return $this->belongsTo(User::class, 'user_id');
}
部分评审模型
public function users() {
return $this->belongsTo(User::class, 'user_id');
}
如何使用users 表中的reviewer_id 访问reviewer 的详细信息
【问题讨论】:
-
你们的关系不是多对多,而是多对一。用户应该
$this->haveMany()和 UserProfile 应该$this->belongsTo() -
您的问题令人困惑,
reviewer_id和user_id之间的区别是什么。看起来它们是一样的。 -
reviewer_id实际上持有user_id数据,但对于撰写评论的用户而言 -
在 Review Model 中,您应该有一种方法用于
user()和 belongsTo User 和user_id和一种方法reviewer()和 belongsTo User 和reviewer_id。然后,从你的 $user 变量做$user->review->reviewer应该给你用户通过reviewer_id -
@MarcoAurélioDeleu 谢谢,按要求工作
标签: laravel-5