我想你是对的。将数据附加到 $groupCategories 是正确的方法。根据文档,如果 $groupCategories 为空,则将显示第四个参数。您可以传递仅显示一次的视图模板,也可以传递任何以 raw| 开头的文本。将按原样显示。
一般格式:
@each('viewfile-to-render', $data, 'variablename','optional-empty-viewfile')
第一个参数是要渲染的模板。这通常是部分的,例如您的 nameofyourblade.blade.php。
第二个是可迭代数据集,在您的情况下为 $groupCategories。
第三个是元素在迭代时将使用的变量名。例如,在 foreach ($data as $element) 中,此参数将是 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')