【发布时间】:2016-05-25 10:31:59
【问题描述】:
我在一个特定的雄辩的查询上遇到了麻烦,我这辈子都想不通。
我正在尝试获取数据库中节拍的 8 小节预览,节拍相关如下:Beat.TrackId->Track.id。歌曲的不同小节存储如下:Beat.TrackVariantID。
我目前有以下代码:
//My controller
$genres = Genre::all();
$tracks = Track::all();
$beats = Beat::where('TrackVariantID', 1)->get();
return view('play.forfun.songselect')->with('genres', $genres)->with('tracks', $tracks)->with('beats', $beats);
我的看法:
@foreach($tracks as $track)
<div class="song-container">
<h2>{{$track->Title}}</h2>
@foreach($track->beats as $beat)
{{$beat->URL}}
@endforeach
<a href=""><button class="beat-preview">Preview beat</button></a>
<button><a href="/mode-select/fun/freestyle/beatselect/{{$track->id}}?track={{$track->id}}">Select</a></button>
</div>
@endforeach
我的节拍模型:
<?php namespace app;
use Illuminate\Database\Eloquent\Model;
class Beat extends Model {
/************
* Generated *
*************/
protected $table = 'Beat';
protected $fillable = [
'id',
'TrackId',
'TrackVariantID',
'SelectedCount',
'CreditCost',
'URL'
];
public function track() {
return $this->belongsTo(\app\Beat::class, 'TrackId', 'id');
}
}
我可以获取节拍 url,但我不能只获取 Beat.TrackVariantID 为 1 的节拍 url,我似乎得到了所有三个。请参阅:
<div class="song-container">
<h2>Glory</h2>
https://s3-eu-west-1.amazonaws.com/20dollarbeats/8bar/8b_eastcoast.mp3
https://s3-eu-west-1.amazonaws.com/16b_eastcoast.mp3
https://s3-eu-west-1.amazonaws.com/24b_eastcoast.mp3
<a href="">
<button class="beat-preview">Preview beat</button></a>
<button><a href="/mode-select/fun/freestyle/beatselect/3?track=3">Select</a></button>
</div>
任何帮助将不胜感激,我对 Laravel 位还比较陌生。
谢谢
【问题讨论】:
-
你想达到什么目的?
Beat模型和track模型有什么关系? -
@JimmyObonyoAbor 我想获取曲目变体 id 为 1 的节拍网址,并将它们与曲目一起显示在我的表格中。关系见上文:)
标签: php laravel foreach eloquent