Как бы я использовал php / blade для изменения классов div - PullRequest
0 голосов
/ 11 июня 2018

Я впервые использую blade-сервер, и мне нужно изменить стиль этого элемента 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

1 Ответ

0 голосов
/ 11 июня 2018

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

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