Мой код такой:
<div class="row no-gutter">
<div class="col-md-3">
<h2 class="nav-cat-text">By Players</h2>
</div>
<div class="col-md-9 col-xs-12">
<div class="wrap-tabs">
<ul class="nav nav-tabs nav-cat">
@foreach($categories as $category)
@if($category->parent_id == 1)
<li role="presentation" class="{{ $loop->first ? 'active' : '' }}"><a href="javascript:;" data-toggle="tab">{{ ucfirst($category->name) }}</a></li>
@endif
@endforeach
</ul>
</div>
</div>
</div>
<br>
<!-- By Types -->
<div class="row no-gutter">
<div class="col-md-3">
<h2 class="nav-cat-text">By Types</h2>
</div>
<div class="col-md-9 col-xs-12">
<div class="wrap-tabs">
<ul class="nav nav-tabs nav-cat">
@foreach($categories as $category)
@if($category->parent_id == 2)
<li role="presentation" class="{{ $loop->first ? 'active' : '' }}"><a href="javascript:;" data-toggle="tab">{{ ucfirst($category->name) }}</a></li>
@endif
@endforeach
</ul>
</div>
</div>
</div>
По игрокам и по типам, каждая имеет пять вкладок
Когда код выполняется, первая вкладка игроков активна
Но почему первая вкладка по типам не активна?
Похоже, вы допустили ошибку, если условие выглядит в первом цикле, вы используете это условие
@if($category->parent_id == 1)
и во втором вы используете это
@if($category->parent_id == 2)
так в By Types
первый не активен
Основная проблема здесь в том, что ваш первый товар parent_id = 1
и так это первый цикл, поэтому он активен.
но во втором foreach первый элемент не имеет parent_id = 2
потому что это, конечно, имеет parent_id = 1
как уже упоминалось ранее.
перед каждым @ foreach. <?php $x= 0;?>
и отредактируйте код так:
@if($category->parent_id == 1)
<li role="presentation" class="{{ $x == 0 ? 'active' : '' }}">
<a href="javascript:;" data-toggle="tab">
{{ ucfirst($category->name) }}
</a>
</li>
<?php $x =1 ?>;
@endif
и то же самое для второго цикла
Я бы предложил вам использовать коллекции от Laravel.
Сначала вы можете разделить свои категории, используя функцию фильтра, как показано ниже.
<?php
$players = collect($categories)->filter(function($value){
return $value->parent_id === 1;
});
$types = collect($categories)->filter(function($value){
return $value->parent_id === 2;
});
?>
Теперь, когда у вас есть отдельные категории, зацикливайте их.
@foreach($players as $category)
<li role="presentation" class="{{ $loop->first ? 'active' : '' }}">
<a href="javascript:;" data-toggle="tab">{{ ucfirst($category->name) }}</a>
</li>
@endforeach
@foreach($types as $category)
<li role="presentation" class="{{ $loop->first ? 'active' : '' }}">
<a href="javascript:;" data-toggle="tab">{{ ucfirst($category->name) }}</a>
</li>
@endforeach