翻译成Blade+Laravel一个while循环

Translate to Blade+Laravel a while loop

这段代码有效,但是在我学习Laravel的过程中,我想知道如果使用Blade+Laravel语法,可以更好地实现

<?php
    $i = 1;
    while ($i <= (5 - $post->images->count())) {
        echo '<div class="col"> </div>';
        $i++;
    }
    ?>

谢谢

https://laravel.com/docs/5.5/blade#loops

在这种情况下,我建议使用 for 循环而不是 while 循环:

@for ($i = 1; $i <= (5 - $post->images->count()); $i++)
    <div class="col"> </div>
@endfor

是的,有。模板就是为此而制作的,你可以看到文档是如何完成类似的事情的:laravel blade : loops

@for ($i = 0; $i <  $post->images->count()); $i++)
    <div class="col"> </div>
@endfor
@for ($i = 0; $i <= (5 - $post->images->count()); $i++) 
   <div class="col"> </div>
@endfor

更好的解决方案是使用@foreach

@foreach( $image as $post->images )

   <div class="col"> </div>

@endforeach

我不确定这是最好的方法,但是可行。

<?php $z = 0; ?>
@while ($z < 3)
  {{ "test".$z }} 
  <?php $z++ ?>
@endwhile
@php 
    $i = 0; 
@endphp 
@while (++$i <= (5 - $post->images->count())) 
    <div class="col"> 
    </div>
@endwhile

在这种特定情况下,因为您正在循环 count(),所以您应该使用 foreach,但是您可能也有兴趣@forelse:

@forelse($image as $img)
<div class="col"> {{ $img }}</div>
@empty 
<div class="col"> NO IMAGES </div>
@endforesle