2017-02-07 7 views
1

У меня есть итерация с этим переменным:Capture значения предыдущей итерации в цикле Laravel PHP

$cart = Cart {#167 ▼ 

    +lines: array:2 [▼ 
    0 => CartLine {#168 ▼ 
     +cart_line_id: 989642 
     +cart_id: 13049301 
     +parent_line_id: null 
     +quantity: 1 
     +article_id: 1164 
     +article_name: "CUSTOMIZED T-SHIRT" 
     +pvp: 29.5 
    } 
    1 => CartLine {#170 ▼ 
     +cart_line_id: 989643 
     +cart_id: 13049301 
     +parent_line_id: 989642 
     +quantity: 2 
     +article_id: 199 
     +article_name: "EXTRA COMPLEMENT" 
     +pvp: 2.5 

    } 
    ] 

} 

И это мой Laravel Еогеасп цикл:

@foreach ($cart->lines as $line) 

@endforeach 

Я хочу это:

@foreach ($cart->lines as $line) 
    @if($line->parent_line_id == $line->cart_line_id(previous)) 
    //print extra 
    @endif 
@endforeach 

Я хочу получить предыдущий элемент текущей итерации элемента.

Это возможно?

+0

Какую версию Laravel вы используете? –

+0

Версия Laravel 5.3 –

ответ

2

Как это:

@foreach ($cart->lines as $index => $line) 
    @if($index > 0 && $line->parent_line_id == $cart->lines[$index - 1]->cart_line_id) 
    //print extra 
    @endif 
@endforeach 

Или используя $loop переменную (видящий вы используете 5.3):

@foreach ($cart->lines as $line) 
    @if(!$loop->first && $line->parent_line_id == $cart->lines[$loop->index - 1]->cart_line_id) 
    //print extra 
    @endif 
@endforeach