Laravel雄辩,并且很有意思

时间:2016-05-30 08:42:12

标签: laravel eloquent

可以在一个集合/ json中获取所有细节(用户,帖子,postimages)吗?

用户>的hasMany(公告) 后>的hasMany(postimage)

用户: id |名称

交的: id | user_id |文本

postimage: id | post_id | imgpath

用户模型:

 public function posts() {
        return $this->hasMany('App\posts')->orderBy('id', 'ASC');
    }

帖子模型:

public function images(){
        return $this->hasMany('App\postsimages');
    }

从用户获取所有帖子工作正常:

$myposts = users::find(Auth::user()->id)->posts;

我能够从循环中的帖子中获取所有图像

foreach($myposts as $mypost) {
    $postimages = $mypost->images;
}

我想要的是获得所有帖子,没有循环的图像,例如

$myposts = users::find(Auth::user()->id)->posts->images

感谢

1 个答案:

答案 0 :(得分:8)

是的,使用hasManyThrough关系。

帖子模型:

public function images()
{
    return $this->hasMany('App\postsimages');
}

用户模型

public function posts()
{
    return $this->hasMany('App\posts')->orderBy('id', 'ASC');
}

public function images()
{
    return $this->hasManyThrough('App\posts', 'App\postsimages');
}

然后

$postimages = Auth::user()->images;