我正在尝试检索已分配给它们的轨道的类型列表,我正在使用whereHas雄辩的查询但感觉有点迷失.
我有以下内容
//model public function workingGenre() { $this->whereHas('tracks',function($query) { $query->where(''); }); return $this->tracks()->first(); } //controller (where i am passing variables etc) $genres = Genre::with('tracks')->get(); //my view @foreach($genres as $genre) {{print_r($genre->workingGenre())}} @endforeach
我知道我的Where是空的,目前我的print_r返回以下内容:
1 App\Track Object ( [table:protected] => Track [fillable:protected] => Array ( [0] => id [1] => GenreId [2] => Title [3] => CreatedById [4] => SelectedCount [5] => ProducerName [6] => SourceId [7] => Published ) [connection:protected] => [primaryKey:protected] => id [perPage:protected] => 15 [incrementing] => 1 [timestamps] => 1 [attributes:protected] => Array ( [id] => 6 [GenreId] => 4 [Title] => Guns Up [CreatedById] => 1 [SelectedCount] => 0 [ProducerName] => [SourceId] => 1 [Published] => 1 ) [original:protected] => Array ( [id] => 6 [GenreId] => 4 [Title] => Guns Up [CreatedById] => 1 [SelectedCount] => 0 [ProducerName] => [SourceId] => 1 [Published] => 1 ) [relations:protected] => Array ( ) [hidden:protected] => Array ( ) [visible:protected] => Array ( ) [appends:protected] => Array ( ) [guarded:protected] => Array ( [0] => * ) [dates:protected] => Array ( ) [dateFormat:protected] => [casts:protected] => Array ( ) [touches:protected] => Array ( ) [observables:protected] => Array ( ) [with:protected] => Array ( ) [morphClass:protected] => [exists] => 1 [wasRecentlyCreated] => ) **And so on**
向正确的方向推进会很棒,我发现这整个雄辩的东西真的很有用,但很难绕过我的脑袋.
谢谢
$genres = Genre::with('tracks')->has('tracks')->get(); foreach($genres as $genre) //do what you need endforeach
这样你就可以获得Genre,只要他们有曲目和渴望加载它们,如果你不想急切加载remove :: with(‘tracks’)