Exo*_*osh 8 php laravel eloquent
我正在尝试检索已分配给它们的轨道的类型列表,我正在使用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
Run Code Online (Sandbox Code Playgroud)
我知道我的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**
Run Code Online (Sandbox Code Playgroud)
向正确的方向推进会很棒,我发现这整个雄辩的东西真的很有用,但很难绕过我的脑袋.
谢谢
$genres = Genre::with('tracks')->has('tracks')->get();
foreach($genres as $genre)
//do what you need
endforeach
Run Code Online (Sandbox Code Playgroud)
这样,只有当他们有轨道和渴望加载它们时才会获得Genre,如果你不想急切加载删除 ::with('tracks')
| 归档时间: |
|
| 查看次数: |
3037 次 |
| 最近记录: |