我正在尝试创建更新页面,并且我已完成大部分页面,但复选框部分除外。由于某种原因,我还没弄明白,复选框是重复的。我正在使用laravel。
这是表单特定部分的代码。
<div class="form-group">
<label>Focus Area</label>
<br>
@foreach(FocusArea::all() as $focusArea)
@if(isset($project))
<div class="checkbox material checkbox-success">
<label>
@foreach($project->getIdsOfFocusAreas() as $selectedFocusArea)
@if($selectedFocusArea == $focusArea->focus_area_id)
<input type="checkbox" name="focus-area[]" value="{{ $selectedFocusArea }}" checked>
@else
<input type="checkbox" name="focus-area[]" value="{{ $selectedFocusArea }}">
@endif
@endforeach
{{ $focusArea->name }}
</label>
</div>
<br>
@endif
@endforeach
</div>
一些额外信息:
FocusArea :: all()生成的数组中的元素数为5。
getIdsOfFocusAreas()生成的数组中的元素数为2。
我知道它因为第2点而重复两次,我只是不确定它为什么会在第一时间重复。
答案 0 :(得分:1)
试试这个:
<div class="form-group">
<label>Focus Area</label>
<br>
<?php $selectedFlug = 0; ?>
@foreach(FocusArea::all() as $focusArea)
@if(isset($project))
<div class="checkbox material checkbox-success">
<label>
@foreach($project->getIdsOfFocusAreas() as $selectedFocusArea)
@if($selectedFocusArea == $focusArea->focus_area_id)
<input type="checkbox" name="focus-area[]" value="{{ $selectedFocusArea }}" {{ ($selectedFocusArea == $focusArea->focus_area_id) ? 'checked' : '' }} >
<?php $selectedFlug = 1; ?>
@break
@else
<?php $selectedFlug = 0; ?>
@endif
@endforeach
@if($selectedFlug == 0)
<input type="checkbox" name="focus-area[]" value="{{ $focusArea->focus_area_id }}">
@endif
{{ $focusArea->name }}
</label>
</div>
<br>
@endif
@endforeach
</div>