1 回答
TA贡献1820条经验 获得超9个赞
您没有关闭您的@foreach,您使用了第二个。但请考虑以下信息!
@if(!empty($page->tags))
@foreach($page->tags as $tag)
@if($loop->last)
{{$tag->name}}
@else
{{$tag->name}},
@endif
@endforeach
@endif
*** 相关且可能对类似错误有用 **
这里的问题是您正在使用 $page->tags 获取 Collection,并且它不会像您想象的那样与 empty() 交互。
在 PHP 中:
$obj = (object) [];
empty($obj);
// returns false
Laravel Collection 是一个对象,因此即使 $page->tags 中没有任何项目,您实际上也在做:
empty(collect())
// returns false
如果您可以保证 $page->tags 始终被设置,那么您可以使用收集方法:
@if($page->tags->isNotEmpty())
@endif
但是,如果有时 $page->tags 为空(即标签未加载到页面上),那么您可以使用:
@if(isset($page->tags))
@endif
综上所述,如果 $page->tags 始终存在(已加载),则 @foreach 语法不应出错,因为 Collection 是可迭代的,并且相当于执行foreach ([] as $item) {}.
- 1 回答
- 0 关注
- 112 浏览
添加回答
举报