Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Dúvida sobre @break usando blade do laravel

Olá, tentei implementar um foreach usando o blade da seguinte forma

@foreach($produtos as $p)
@if($p->descricao <=1)
<h4>
  <span class="label label-danger pull-right">
    Um ou menos itens no estoque
  </span>
 </h4>
@break
@endif
@endforeach

Porém acho que ele não me entendeu haha, ele não parou meu foreach quando a condição do true foi TRUE a sintaxe está incorreta? ou não existe um BREAK no Blade do Laravel?

5 respostas

Oi Tiago, tudo bom?

Acredito que a sintaxe esteja correta. O que me deixou curioso foi a lógica envolvida.

Aqui:

@if($p->descricao <=1)

Estamos comparando a descrição (que provavelmente é uma string) com o numero inteiro. E a menssagem é:

    Um ou menos itens no estoque

Pela menssagem acredito que a ideia seria imprimir os produtos, caso haja um ou nenhum produto a gente imprime a menssagem de erro. Certo?

Uma forma de implementar essa funcionalidade seria verificar o tamanho da lista de produtos. Se for menor ou igual a um a gente solta a menssagem. Algo como:

@if(count($produtos) <=1)
    // imprime a menssagem

Ahh sim, justamente a lógica está errada . haha. Vou testar fazendo com a lógica correta. vamos ver. Obrigado por enquanto.

Boa Tiago, funcionou?

Passa o feedback pra gente aqui =)

Abraço!

solução!

Só pelo feedback, tentei utilizar o @break no usando o blade sem sucesso, com uma pesquisa rápida vi um pessoal falando no forum do laracasts que não existe a função. Estou usando a versão 5.0 do Laravel.

Poxa =/

Acredito que uma forma seja implementar isso na mão. Ou, nesse caso, onde a ferramenta não cobre tudo da linguagem, a gente ainda pode utilizar a tag do php mesmo e realizar o for na mão. Por exemplo:

<?php
foreach($produtos as $p){
    if($p->descricao <=1){
?>
    <h4>
          <span class="label label-danger pull-right">
                Um ou menos itens no estoque
          </span>
     </h4>
<?php
    }
    break;
}
?>