показать данные вложенного цикла foreach в двух разных тегах Select в laravel - PullRequest
0 голосов
/ 27 июня 2019

У меня две модели (категория, марка) связаны с отношением один ко многим (hasMany) в laravel, как category hasMany brands. Теперь я хочу отобразить данные бренда в одном теге выбора, а данные модели категории - в другом теге выбора.

  • Вот мой код контроллера
     $category=Category::with('brands')->get();
      return view('product.add')->with('category',$category);
  • Вот мой клинок.
     <div class="form-group">
       <select name="category_id" class="input">
         <option value="">Select Main    Category</option>
           @foreach($category as $category)
         <option value="{{$category->id}}">{{$category->name}}</option>
           @endforeach
       </select>
     </div>
     <div class="form-group">
       <select name="brand_id" class="input">
           @foreach($brands->brands as $brand)
              <option value="{{$brand->id}}">{{$brand->name}}</option>
           @endforeach
       </select>
     </div>

не работает

1 Ответ

2 голосов
/ 27 июня 2019

Вы можете сделать что-то простое, как это:

    <div class="form-group">
       <select name="category_id" class="input">
         <option value="">Select Main    Category</option>
           @foreach($category as $cat)
         <option value="{{$cat>id}}">{{$cat->name}}</option>
           @endforeach
       </select>
     </div>
     <div class="form-group">
       <select name="brand_id" class="input">
           @foreach($category as $cat)
           @foreach($cat->brands as $brand)
              <option value="{{$brand->id}}" category="{{$cat->id}}">{{$brand->name}}</option>
           @endforeach
           @endforeach
       </select>
     </div>

и вам нужно показать только бренды для выбранной опции, используя javascript (jquery)

    $('[name="category_id"]').on('change',function() {
       if($(this).val() != '') {
          $('[name="brand_id"] option').hide();
          $('[name="brand_id"] option[category="'+$(this).val()+'"]').show();
       } else {
           $('[name="brand_id"] option').show();
       }

    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...