2016-05-30 130 views
1

有可能獲得一個集合/ json中的所有細節(用戶,帖子,postimages)?Laravel雄辯hasmany-> hasmany

用戶>的hasMany(職位) 後>的hasMany(postimage)

用戶: ID |名稱

post: id | user_id | text

postimage: id | post_id | imgpath

用戶模型:

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

posts模型:

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

得到用戶的所有帖子正常工作:

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

我能夠從一個得到所有圖片在迴路內發帖

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

我想要的是讓所有的帖子,沒有循環圖像e.g

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

感謝

+0

嘗試:$ myposts =用戶::發現(AUTH ::用戶() - > ID) - >帖() - >圖像; –

+0

未定義的屬性:Illuminate \ Database \ Eloquent \ Relations \ HasMany :: $ images – markus

+0

嘗試'$ myposts = users :: find(Auth :: user() - > id) - > posts-> with('images') - > get()' – Rifki

回答

6

是,使用hasManyThrough關係。

posts模型:

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;