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
大家好,就像在标题中解释的那样,我在使用 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