繁体   English   中英

Laravel雄辩的多次加入

[英]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');
    }
}

这给了我所有专辑的歌曲,艺术品和系列。 试图弄清楚如何进行第二次加入以获得歌曲的歌词。

你可以试试

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM