Изменить переменную лезвия ларавеллы, не отображая ее

php laravel blade laravel-blade

2044 просмотра

2 ответа

1222 Репутация автора

В моем блейд-коде мне нужен счетчик, чтобы получить div, которые отображаются уникальным идентификатором цикла foreach. Для этого я создал переменную в своем шаблоне blade-сервера следующим образом:

{{ $counter = 0 }}

Я использую его в HTML, просто выводя его с {{ $counter = 0 }}

и позже я увеличиваю это так: {{ $counter++ }}

Все это работает как чудо, за исключением того, что {{ $counter++ }}оно не только увеличивает значение переменной, но и выводит ее в представление.

Есть ли способ предотвратить это?

Автор: ErikL Источник Размещён: 18.07.2016 05:47

Ответы (2)


1 плюс

147 Репутация автора

Я использую это расширение, чтобы установить переменные на blade-сервере: https://github.com/RobinRadic/blade-extensions

Вы можете использовать просто как @set ($ count, 1) или любое другое значение.

Автор: Mauro Baptista Размещён: 18.07.2016 07:16

3 плюса

4536 Репутация автора

Вначале добавление логики в шаблонирование блейдов - плохая практика, но иногда мы вынуждены это делать, в этом случае вы можете просто использовать для этого теги PHP:

<?php $counter++; ?>

Другой способ сделать это на Laravel 5.4, как показывают документы :

В некоторых ситуациях полезно встроить PHP-код в ваши представления. Вы можете использовать директиву Blade @php, чтобы выполнить блок простого PHP внутри вашего шаблона:

@php
   $counter++;
@endphp

Если у вас есть свои позиции на ключах массива, вы можете использовать его @foreachследующим образом:

@foreach ($variable as $key => $value) 
    //current position = $key
    # code...
@endforeach
Автор: Troyer Размещён: 13.03.2017 03:25
Вопросы из категории :
32x32