Почему активный класс не работает во втором цикле?

Мой код такой:

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

По игрокам и по типам, каждая имеет пять вкладок

Когда код выполняется, первая вкладка игроков активна

Но почему первая вкладка по типам не активна?

0

Решение

Похоже, вы допустили ошибку, если условие выглядит в первом цикле, вы используете это условие

 @if($category->parent_id == 1)

и во втором вы используете это

 @if($category->parent_id == 2)

так в By Types первый не активен

0

Другие решения

Основная проблема здесь в том, что ваш первый товар 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

и то же самое для второго цикла

0

Я бы предложил вам использовать коллекции от 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
0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector