2015-04-23 106 views
0

我有一個表格專輯,每張專輯有多首歌曲,藝術品,並且可以屬於多個系列。Laravel Eloquent Multiple Join

每首歌曲都可以有來自另一張表格的歌詞。

到目前爲止,我有:

routes.php文件

Route::get('get_albums', function() { 
     return Album::with('songs', 'artworks', 'series')->get(); 
    }); 

Album.php模型

<?php 

class Album extends Eloquent { 

    protected $table = 'albums'; 

    public function songs() 
    { 
     return $this->hasMany('Song'); 
    } 

    public function artworks() 
    { 
     return $this->hasMany('Artwork'); 
    } 

    public function series() 
    { 
     return $this->hasMany('Serie'); 
    }  
} 

Song.php模型

<?php 

class Song extends Eloquent { 
    public function album() 
    { 
     return $this->belongsTo('Album'); 
    } 

    public function lyric() { 
     return $this->hasOne('Lyric'); 
    } 
} 

Artwork.php模型

<?php 

class Artwork extends Eloquent 
{ 

    public function album() 
    { 
     return $this->belongsTo('Album'); 
    } 
} 

Serie.php模型

<?php 

class Serie extends Eloquent { 
    public function album() 
    { 
     return $this->belongsTo('Album'); 
    } 
} 

Lyric.php模型

<?php 

class Lyric extends Eloquent { 
    public function song() 
    { 
     return $this->belongsTo('Song'); 
    } 
} 

這讓我回所有專輯與他們的歌曲,藝術作品和系列。試圖找出如何做第二次連接來獲取歌曲的歌詞。

回答

1

您可以嘗試

Route::get('get_albums', function() { 
    return Album::with('songs.lyric', 'artworks', 'series')->get(); 
});