Я впервые использую лезвие, и мне нужно изменить стиль этого элемента div в зависимости от количества доступных свойств. Мне нужно написать оператор if, который скрывает div, если он равен или меньше единицы, и добавляет другой класс, если он равен 2.
как мне написать это с помощью blade или php?
@if (isset($participatingProperties) && !empty($participatingProperties) && is_array($participatingProperties))
<?php $i = 0; ?>
@foreach ($participatingProperties as $key => $property)
@if ($i++ % 3 === 0)
<div class = "item item2 {{ $i < 3 ? 'active' : '' }}">
@endif






Я так понимаю:
У вас есть массив $participatingProperties и один div для печати.
Когда в нем 0 или 1 элемент, ничего не происходит.
Если у него 2 элемента, div печатает в определенном стиле.
Когда в нем 3 или более элементов, div печатается с другим стилем.
(Нет правила для более чем 3 элементов).
Я бы упростил это с помощью count:
@php($count = count($participatingProperties))
@if ($count > 1)
<div
class = "{!! ($count == 2) ? 'class-2' : 'class-3-or-more' !!}"
>
div content
</div>
@endif
Если вам не нужен определенный стиль для каждой суммы, это еще проще:
@if (count($participatingProperties) > 1)
<div class = "myclass">
div content
</div>
@endif
Использование как empty, так и isset - избыточный. И я думаю, вам не нужно проверять, является ли $participatingProperties массивом, вместо этого убедитесь, что он всегда находится в вашем бэкэнде. Если вы вернете хотя бы пустой массив, count вернет 0.