我是laravel的新手。我最近开始用Laravel做一些基本的事情,我真的很喜欢它。我试图创建这样的嵌套下拉列表:
从这个下拉列表中我将选择一个。
我有这样的数组:
现在我的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)
<!-- ------------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
请建议如何在数组级别嵌套时创建空格(
)。
谢谢!
答案 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++)
@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建议的那样