转换为Blade + Laravel一会儿循环

时间:2018-01-05 10:45:58

标签: laravel blade

此代码有效,但在我学习Laravel时,我想知道是否使用Blade + Laravel语法,可以更好地实现

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

由于

7 个答案:

答案 0 :(得分:1)

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

<?php $z = 0; ?>
@while ($z < 3)
  {{ "test".$z }} 
  <?php $z++ ?>
@endwhile

答案 1 :(得分:1)

@php 
    $i = 0; 
@endphp 
@while (++$i <= (5 - $post->images->count())) 
    <div class="col"> 
    </div>
@endwhile

答案 2 :(得分:0)

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

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

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

答案 3 :(得分:0)

是的,有。模板就是为此而制作的,你可以看到文档的相似之处:laravel blade : loops

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

答案 4 :(得分:0)

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

答案 5 :(得分:0)

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

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

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

@endforeach

答案 6 :(得分:0)

在这种特定情况下因为你在循环 count() 你应该使用 foreach,但是你可能也对 @forelse 感兴趣:

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