在laravel中循环通过两个对象

时间:2015-07-25 07:29:01

标签: php arrays laravel laravel-4

我有两个对象数组,我想检查两个元素的id是否相同,然后在选择框中选择选项,否则只显示它。我试过这样:

 <select multiple class="form-control" name="category_id[]">
         @foreach($mysliwski as $mysl)
            @if(!$product->categories->isEmpty())
               @foreach($product->categories as $cat)
                  @if($mysl->id == $cat->id)
                      <option selected value="{{$mysl->id}}">{{$mysl->name}}</option>
                  @else
                      <option value="{{$mysl->id}}">{{$mysl->name}}</option>
                  @endif
               @endforeach
          @else
             <option value="{{$mysl->id}}">{{$mysl->name}}</option>
          @endif
          @endforeach
 </select> 

但只有当一个类别相同时它才有效。当有更多我的选择选项重复时。 这是我的两个 arrays。哪里有虫?

1 个答案:

答案 0 :(得分:0)

你可以像这样实现

<select multiple class="form-control" name="category_id[]">
         @foreach($mysliwski as $mysl)
            @if(!$product->categories->isEmpty())
               {{-- */$selected='';/* --}}
               @foreach($product->categories as $cat)
                  @if($mysl->id == $cat->id)
                      {{-- */$selected='selected';/* --}}
                  @endif                                            
               @endforeach
               <option {{ $selected }} value="{{$mysl->id}}">{{$mysl->name}}</option>
          @else
             <option value="{{$mysl->id}}">{{$mysl->name}}</option>
          @endif
      @endforeach
 </select> 

注意:{{-- */$selected='';/* --}}是在刀片模板中声明变量的棘手方法。见https://stackoverflow.com/a/17176876/170539