在Laravel雄辩的关系中获取空数组HasManyThrough

时间:2018-02-04 08:10:48

标签: php laravel eloquent relationship

我有点像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()

1 个答案:

答案 0 :(得分:1)

 just remove Models from App  
    public function threadKarmaPoints() {
      return $this->hasManyThrough(
        'App\ThreadKarmaView',
        'App\ThreadView',
        'userId',
        'threadId',
        'userId',
        'threadId');
   }

第二个问题或者你的问题在哪里没有改变它的意思