如何在Laravel / Blade中执行多个重复部分?

问题描述 投票:0回答:1

[确定,我正在设计一个标签视图组件。根据使用位置/方式,它具有可变数量的选项卡。我想做的是这个(简体):

@component('tabSet')
   @component('tab', ['label' => 'settings', 'content' => 'nameOfContentComponent'])
   @component('tab', ['label' => 'stuff', 'content' => 'nameOfContentComponent'])
   @component('tab', ['label' => 'Other stuff', 'content' => 'nameOfContentComponent'])
  @component('tab', ['label' => 'And even more stuff', 'content' => 'nameOfContentComponent'])
@endcomponent

所需的输出看起来像这样:

<section class="tabSet">
        <div class="tabs-contentArea"> 
<!-- this section is repeated for each tab-->
            <div class="tabs-contentArea-content">nameOfContentComponent</div>
 <!-- this section is repeated for each tab-->      
            <div class="tabs-contentArea-content">nameOfContentComponent</div>
  <!-- this section is repeated for each tab-->        
            <div class="tabs-contentArea-content">nameOfContentComponent</div>
  <!-- this section is repeated for each tab-->         
            <div class="tabs-contentArea-content">nameOfContentComponent</div>
<!-- this section is repeated for each tab-->

        </div>
        <div class="tabs-tabArea">
<!-- this section is repeated for each tab-->
            <div class="tabs-tab"> 
                <label class="tabs-tab-label icon-skull" >settings</label>
            </div>
<!-- this section is repeated for each tab-->
            <div class="tabs-tab">
                <label class="tabs-tab-label-mobile icon-skull" >Stuff</label>
            </div>
<!-- this section is repeated for each tab-->
            <div class="tabs-tab">
                <label class="tabs-tab-label-mobile icon-skull">Other stuff</label>
            </div>
<!-- this section is repeated for each tab-->
            <div class="tabs-tab">
                <label class="tabs-tab-label-mobile icon-skull"  >And even more stuff</label>
            </div>
<!-- this section is repeated for each tab-->
        </div>
    </div>
</section>

我看不到如何将变量分成两个不同的重复部分,并具有可变数量的制表符(.tabs-contentArea-content和.tabs-tab-label)

我可以选择一个版本,在该版本中加载相关变量的数组并使用两个for循环来生成节,但这需要我执行类似的操作>

@component('tabSet', ['tabData' => 'fileWithArray'])@endcomponent

并从数组中将数据作为变量加载-这似乎不太干净,因为必须为每个选项卡集创建一个数组文件,而不是仅指定在构建视图时要创建的选项卡。

请就这方面的最佳做法提出建议

最诚挚的问候

David Trappaud

[确定,我正在设计一个标签视图组件。根据使用位置/方式,它具有可变数量的选项卡。我想做的是(简化)的:@component('tabSet')@component('tab',...

php laravel components laravel-blade
1个回答
0
投票

保持简单。组件不提供所需的功能。我建议使用:

© www.soinside.com 2019 - 2024. All rights reserved.