2015-04-23 78 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(); 
});