2016-11-03 4 views
3

Я пытаюсь создать страницу обновления, и я заполнил большую часть страницы, за исключением секции флажка. По какой-то причине, что я еще не понял, флажки дублируются. Я использую laravel.Флажок Дублирование

enter image description here

Это код для этого конкретного раздела формы.

<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> 

Некоторые дополнительная информация:

  1. Количество элементов в массиве, порожденного FocusArea :: все() 5.

  2. Количество элементов в массиве, порожденного getIdsOfFocusAreas() is 2.

Я знаю, что он дублирует дважды из-за poi nt номер 2, im просто не совсем уверен, почему он дублирует в первую очередь.

+0

Это не выглядит, как PHP. Что это? Вы должны уточнить. – taco

+0

Вы печатаете его дважды. Ваш foreach запускается 2 раза, поэтому есть два флажка. Вы должны изменить свою логику. –

+0

@taco Привет, извините, я не сказал об этом в вопросе. это php, но используется вместе с каркасом Laravel. – fizjin

ответ

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> 
+0

Привет, Римон благодарит за помощь. Вашему коду удается избавиться от всех дубликатов, кроме первого есть 2 флажка для eAsset. – fizjin

+0

Привет, Римон, добавлено ли «продолжение» в код, избавляется от второго флажка для eAsset для вас? Я пытался удалить оставшийся дополнительный флажок, но я до сих пор не могу это сделать. Мой идеал дает мне «не могу сломать/продолжить 1 уровень (ы)» – fizjin

+0

У меня есть обновленный ответ позже! Вы продолжаете пытаться! –

Смежные вопросы