Laravel 4 正在加载数据库中播放列表中的所有歌曲

Laravel 4 Loading all songs from a playlist in database

大家好,就像在标题中解释的那样,我在使用 Laravel 时遇到了一些麻烦, 我正在创建一个系统,用户可以拥有各种播放列表(最多 5 个),并且每个播放列表中可以包含很多歌曲(最多 50 首)。我正在尝试将所有这些合并到其中并尝试按如下方式打印出来:

我有以下 Class 播放列表:

<!-- language: lang-php -->

    <?php
    class Playlist extends Eloquent {
        /**
         * The database table used by the model.
         *
         * @var string
         */
        protected $table = 'playlists';
        public $timestamps = false;
        /**
         * Whitelisted model properties for mass assignment.
         *
         * @var array
         */
        protected $primaryKey='playlistid';

        protected $fillable = array('playlistname', 'userid');

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




And the following class for a song:

       <?php
        class Song extends Eloquent {
            /**
             * The database table used by the model.
             *
             * @var string
             */
            protected $primaryKey='songid';
            protected $foreignKey='playlistid';
            protected $table = 'songs';
            public $timestamps = false;
            protected $fillable = array('songname', 'songurl', 'playlistid', 'position');
    
            public function playlistid()
            {
    return $this->belongsTo('Playlist', 'playlistid');
            }
    public function fromList($id)
    {
    return $this->where('playlistid', $id);
            }
        }

然后我尝试在我的主页中调用它,例如:

        @foreach (Song::find(1)->fromList(1) as $song)
        echo $song->songname
        @endif

但它似乎不起作用,有没有人知道更好的方法或修复方法?

不确定这是否是您想要的,但这是打印一个播放列表中所有歌曲的方法:

@foreach(Playlist::find(1)->songs as $song)
    {{ $song->songname }}
@endforeach