2 laravel laravel-5 laravel-5.3
我有一个查询的JSON结果,如下所示:
{
"id":1,
"user_id":"1",
"message":"Hello, world",
"created_at":"2016-09-22 00:32:20",
"updated_at":"2016-09-22 00:32:20",
"stats": [
...
]
},
{
"id":2,
"user_id":"1",
"message":"Hello, world",
"created_at":"2016-09-22 00:32:20",
"updated_at":"2016-09-22 00:32:20",
},
{
... more results
}
Run Code Online (Sandbox Code Playgroud)
请注意,有时结果有一个stats属性,有时它没有(尽管每个记录都有stats关系).不要问为什么,这就是我在后端设置的方式.
我想在我的视图中循环遍历这些结果,如下所示:
@foreach ($posts as $post)
@if (isset($post->stats) && !empty($post->stats)
{{ $post->stats->total }}
@endif
@endforeach
Run Code Online (Sandbox Code Playgroud)
但是,对于post id2,循环也将输出该$post->stats->total值,因为它延迟加载stats.
如何防止它延迟加载stats关系呢?
这是因为您正在访问$post->stats.您可以stats使用以下relationLoaded()定义的方法检查是否加载了关系Illuminate\Database\Eloquent\Model:
@foreach ($posts as $post)
@if ($post->relationLoaded('stats'))
{{ $post->stats->total }}
@endif
@endforeach
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
504 次 |
| 最近记录: |