我认为你是对的。将数据追加到$groupCategories是正确的方法。根据文档,第四个参数是如果$groupCategories为空时将显示的内容。您可以传递仅显示一次的视图样板,也可以传递任何以 raw 开头的文本|将按原样显示。
一般格式:
@each('viewfile-to-render', $data, 'variablename','optional-empty-viewfile')
第一个参数是要呈现的模板。这通常是部分的,就像你的名字ofyourblade.blade.php。
第二个是可迭代数据集,在你的例子中$groupCategories。
第三个是元素在迭代时将使用的变量名称。例如,在 foreach 中($data为 $element),此参数将是元素(不带 $)。
第四个参数是可选的 - 它是模板文件的名称,当第二个参数($data)为空时,即没有任何可迭代的内容时,应呈现该模板文件的名称。如果我们将所有这些应用于我们的案例,我们可以替换整个块:
@if (count($groupCategories) > 0)
<ul>
@foreach ($groupCategories as $parent)
@include('partials.nav.categories', $parent)
@endforeach
</ul>
@else
@include('partials.group-none')
@endif
跟
@each('partials.nav.categories', $groupCategories, 'parent', 'partials.group-none')