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 關注
- 153 瀏覽
添加回答
舉報