2017-05-24 84 views
0

我有2個表issuesmagazines和他們有關係,建立這樣的:Laravel - 爲了通過關係表

雜誌模式:

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

問題型號:

public function magazine() 
{ 
    return $this->belongsTo('App\Magazine'); 
} 

在雜誌表中,我有一列order,其中雜誌的訂單號是。我需要顯示雜誌訂購的每本雜誌的最新期刊。 現在我正在顯示在發佈日期之前訂購的每本雜誌的最新期刊。

 $issues = Issue::orderBy('date', 'desc')->get()->groupBy('magazine_id'); 

     foreach ($issues->first() as $issue) 
     { 
      $images[] = $issue->image; 
     } 

而且工作正常。 但隨着新的查詢:

  $magazines = Magazine::with('issues')->orderBy('order')->get(); 


     foreach ($magazines as $magazine) 
     { 
      $issues = $magazine->issues()->first(); 
      $images[] = $magazine->issues()->first()->image; 
     } 

我得到的錯誤:

Trying to get property of non-object

+0

檢查' $ magazine-> issues() - > first()'在你執行'$ magazine-> issues() - > first() - > image'之前不返回null – Nerea

回答

0

只是檢查,如果問題is_null,如果沒有,將圖像添加到$images

foreach ($magazines as $magazine) 
    { 
     $issue = $magazine->issues()->first(); 
     if (!is_null($issue) { 
      $images[] = $issue->image; 
     } 
    }