некорректно работает @if в @foreach

361
20 февраля 2017, 19:35

Здравствуйте.

Есть код, который выводит все элементы из бд, во время вывода проверяет на наличие значение в бд:

<div class="tickets-places">
    {{$i = 1}}
    @foreach($tickets as $t)
    @if($t->number != $i)
    <div class="one-place" id="game-place-{{$i}}" onclick="setplace(2,1, {{$i}}, {{$user->id}});">
        <span>{{$i}}</span>
    </div>
    @else
    <div class="one-place" id="game-place-" onclick="setplace(2,1, {{$i}}, {{$user->id}});">
        <span>test</span>
    </div>
    @endif
    {{$i = $i+1}}
    @endforeach
</div>

Если значение есть в бд, то выводит test. Получается так, что если @if срабатывает, то он изменяет первые элемент или если в бд в двух строках установлено значение $t->number — он все равно выводит test только для первого значения. Как это можно решить?

Answer 1

Для получения текущего индекса при обходе массива лучше используйте переменную $loop вот тут статья поможет Вам с ним https://mattstauffer.co/blog/the-new-loop-variable-in-laravel-5-3

по вашей проблеме я думаю это связано с тем, что у Вас $i до старта цикла всегда 1. Я не могу точнее сказать, так как не знаю что при итерации цикла в переменной $t->number

READ ALSO
Установка в PDO констант по умолчанию

Установка в PDO констант по умолчанию

Для вывода результата из запроса нужно установить

235
Организация Domain events с помощью ZF EventManager

Организация Domain events с помощью ZF EventManager

Возможно ли организовать модель доменных событий используя возможности ZF-EventManager?

235
Деление двух чисел

Деление двух чисел

Есть два input'а, я хочу ввести туда числа и в третьем получить результат деленияГде ошибка? Результат не выводится

276
Как пропускать ненужные индексы?

Как пропускать ненужные индексы?

Он добавляет индекс от нуля и попорядку 1,2,3 и тдтп а если мне надо пропустить индексы 3 5 ,10, 34 ну или ещё какието

287