如何在刀片模板Laravel中的嵌套下拉列表中正确放置空格

时间:2016-02-17 18:49:25

标签: php laravel laravel-5

我是laravel的新手。我最近开始用Laravel做一些基本的事情,我真的很喜欢它。我试图创建这样的嵌套下拉列表:

enter image description here

从这个下拉列表中我将选择一个。

我有这样的数组:

enter image description here

现在我的VIEW模板看起来像下面的代码,我使用了递归方法。

<select class="form-control select2me" name="service_id">
        <option value="">Select...</option>
        @foreach($serviceslist as $serviceli)
             @include('services.categorydropdown', array('serviceli'=> $serviceli))
        @endforeach
</select>

另一个模板services.categorydropdown

<option value="{{$serviceli['id']}}">
    @for ($i = 0; $i <= $serviceli['service_id']; $i++)
        @if($serviceli['service_id'] != 0)
        &nbsp; <!-- ------------I want to add Space as the nested level goes by ------------- -->
        @endif
    @endfor
    {{$serviceli['servicename']}}
</option>

@if(count($serviceli['allChildrenCategory']) > 0)
    @foreach($serviceli['allChildrenCategory'] as $serviceli)
        @include('services.categorydropdown', $serviceli)
    @endforeach
@endif

请建议如何在数组级别嵌套时创建空格(&nbsp;)。

谢谢!

感谢您的帮助。在你的建议之后@nakashu这里是现在的样子。 enter image description here 在最后一个节点,我们在某个地方出错了。

2 个答案:

答案 0 :(得分:1)

这应该解决它:

<select class="form-control select2me" name="service_id">
        <option value="">Select...</option>
        @foreach($serviceslist as $serviceli)
             @include('services.categorydropdown', array('serviceli'=> $serviceli, 'level' => 0))
        @endforeach
</select>

另一个模板services.categorydropdown:

<option value="{{$serviceli['id']}}">
    @for ($i = 0; $i <= $level; $i++)            
        &nbsp;
    @endfor
    {{$serviceli['servicename']}}
</option>

@if(count($serviceli['allChildrenCategory']) > 0)
    @foreach($serviceli['allChildrenCategory'] as $serviceli)
        @include('services.categorydropdown', array('serviceli'=>$serviceli, 'level' => ($level + 1)))
    @endforeach
@endif

答案 1 :(得分:0)

我强烈建议您在控制器或模型本身中执行这些过滤器,然后在刀片中进行渲染。

{{ Form::select('service_id', $serviceslist, null, array('class' => 'form-control yourspacing')) }}

为你的班级写下风格 .yourspacing { //你需要的间距 }

为什么我要在控制器中进行过滤?

因为在刀片中大力做这样的事情绝不是最好的做法。

我该怎么做?

通过连接表或array_filter。取决于您的过滤器

提示:始终按照推荐的方式关注帮助,以获得最佳效果。

更新:

因为你想做内循环并检查一些条件。你应该像nakashu建议的那样&nbsp;