我有点像reddit网站。
我需要通过用户所做的线程向我提供用户及其karmas的个人资料的查询。
表和关系:
用户有一个个人资料
用户通过线程有很多threadKarmaPoints
public function threadKarmaPoints() {
return $this->hasManyThrough(
'App\Models\ThreadKarmaView',
'App\Models\ThreadView',
'userId',
'threadId',
'userId',
'threadId');
}
查询:(我需要通过用户名而不是id来获取用户)
$user = UserView::where('username', $username)
->with(['profile', 'threadKarmaPoints'])
->firstOrFail();
这给了我空数组。虽然我删除了'threadKarmaPoints'
in,但它会向我提供用户和他的个人资料,所以我认为我的threadKarmaPoints
关系一定有问题。
其他问题:在雄辩的问题中,->with()
应该是第一个还是->where()
?
答案 0 :(得分:1)
just remove Models from App
public function threadKarmaPoints() {
return $this->hasManyThrough(
'App\ThreadKarmaView',
'App\ThreadView',
'userId',
'threadId',
'userId',
'threadId');
}
第二个问题或者你的问题在哪里没有改变它的意思