Laravel连接3个表,前两个表一行,第三个表多个行

时间:2019-02-11 17:25:18

标签: laravel-5 eloquent

我有3张桌子。第一表日记

id | journal_name
 6 | xyz journal
 7 | abc journal

第二个表卷

id | journal_id | volume_name
1 | 6           | volume1
2 | 6           | volume2
3 | 7           | volume3

第三表文章

id | journal_id | volume_id | articles
1 | 6           |      1    | volume1
2 | 6           |      1    | volume2
3 | 7           |       3   | volume3
4 | 7           |       3   | volume4

现在,如果单击日志名,则显示卷名,然后单击卷名,然后打开相关文章。

但是我需要一次journal_name和volume_name。和多次文章。

控制器方法是:

public function viewarticles($id)
{
    $articles = article::where('volume_id',$id)->with('journal','volume')->get();
    return view('viewarticles',compact('articles'));
}

文章模型为:

function journal()
 {
      return $this->belongsTo(journal::class, 'journal_id');
 }
 function volume()
 {
      return $this->belongsTo(volume::class, 'volume_id');
 }

它多次给所有表。 但是我只需要日志和卷表中的一行。还有文章中的多个记录(如果有记录的话)。

0 个答案:

没有答案
相关问题