【发布时间】:2020-11-02 10:44:17
【问题描述】:
我不明白为什么这不起作用。
我在 Laravel 中的 Post 和 Tag 两个模型之间存在多对多关系。
显示帖子时,我的刀片模板中有此代码:
@if(!empty($page->tags))
@foreach($page->tags as $tag)
@if($loop->last)
{{$tag->name}}
@else
{{$tag->name}},
@endif
@foreach
@endif
但是,当帖子上没有标签时,它会引发此错误:
未定义的偏移量:1
照亮\Foundation\Bootstrap\HandleExceptions::handleError
供应商/laravel/framework/src/Illuminate/View/Compilers/Concerns/CompilesLoops.php:95
如果我注释掉 foreach 循环,一切都很好。但是由于 if 语句,foreach 循环不应该运行,但显然会尝试运行。我也在 if 语句中尝试了其他表达式,包括
@if(count($page->tags) > 0)
和
@if(null !== $page->tags)
似乎没有任何效果。我不知道如何优雅地处理标签的缺失。
如果我 dd($page->tags) 它显示它只是一个空数组,所以我不明白为什么这不起作用。
【问题讨论】:
标签: php laravel laravel-blade