Discovering last vector item in the foreach?

Asked

Viewed 332 times

1

I need to know what is the last item of the vector so that when it is the last one does not add a comma:

Example:

SEM SABER QUAL É O ULTIMO ITEM
1,2,3,4,5,

SABENDO QUAL É A ULTIMA VIRGULA
1,2,3,4,5

I make a foreach variable, and I add a comma to the text, but at last it will not be necessary to add the comma because it is the last one. I am using LARAVEL 5.4 together with the blade for the manipulation of HTML.

Follows the code:

@foreach($cliente->compras as $compra)
    {{$compra->produto}},
@endforeach

the way it is on top, it is putting the last comma, but it is normal to take into account that it is not making any logic to leave the same.

Relations and Model

Shopping

public function cliente()
{
    return $this->BelongsTo('App\Compras', 'COD_IDENT_CLIEN', 'COD_COMPR_VENDA');
}

public function produtos()
{
    return $this->HasMany('App\ComprasProdutos', 'COD_DAXXX_VENDA', 'COD_DAXXX_VENDA');
}

Shopping -> Products

public function compra()
{
    return $this->BelongsTo('App\Compras', 'COD_DAXXX_VENDA', 'COD_DAXXX_VENDA');
}

public function item()
{
    return $this->BelongsTo('App\Produto', 'COD_IDENT_PRODU', 'COD_BARRA_PRODU');
}

Products

public function compras()
{
     return $this->BelongsTo('App\ComprasProdutos', 'COD_BARRA_PRODU', 'COD_IDENT_PRODU');
}

Code Blade

@foreach($cliente->compras as $compra)
<div class="list-group-item media">
   <div class="checkbox pull-left">
            #{{$compra->COD_DAXXX_VENDA}}
        </div>

        <div class="pull-right">
            <div class="actions dropdown">
                <a href="" data-toggle="dropdown" aria-expanded="true">
                    <i class="zmdi zmdi-more-vert"></i>
                </a>
                <ul class="dropdown-menu dropdown-menu-right">
                    <li>
                        <a href="/clientes/compra/{{ $cliente->COD_IDENT_CLIEN }}">
                        Visualizar
                        </a>
                    </li>
                </ul>
            </div>
        </div>

        <div class="media-body">
            <div class="lgi-heading">
                @foreach($compra->produtos as $produto)
                    {{-- {{dd($produto->item)}} --}}
                    {{$produto->item->TXT_NOMEX_PRODU}}
                    @if ($produto->last != $produto)
                        {{','}}
                    @endif
                @endforeach
            </div>
        </div>
    </div>
@endforeach
</div>

1 answer

1


If the item is part of a collection use the method last as follows:

<?php
    $last = $cliente->compras->last();
?>

@foreach($cliente->compras as $compra)
    {{$compra->produto}}
    @if ($last->produto != $compra->produto) {{','}} @endif
@endforeach

@@Edit

<div class="media-body">
    <div class="lgi-heading">
        <?php $last = $compra->produtos->last(); ?>
        @foreach($compra->produtos as $produto)
            {{-- {{dd($produto->item)}} --}}
            {{$produto->item->TXT_NOMEX_PRODU}}
            @if (last->COD_IDENT_PRODU != $produto->COD_IDENT_PRODU)
                {{','}}
            @endif
        @endforeach
    </div>
</div>

References:

Browser other questions tagged

You are not signed in. Login or sign up in order to post.