Как мне использовать php / blade для изменения классов div

Я впервые использую лезвие, и мне нужно изменить стиль этого элемента 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
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
69
1

Ответы 1

Я так понимаю:
У вас есть массив $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.

Другие вопросы по теме