如何在 laravel 刀片的 for 循环中设置值

Posted

技术标签:

【中文标题】如何在 laravel 刀片的 for 循环中设置值【英文标题】:How to set value in for-loop on laravel blade 【发布时间】:2016-10-28 23:49:14 【问题描述】:
<select id="year" name="year" class="form-control ">
     $last= date('Y')-120 
     $now = date('Y') 

      @for ($i = $now ; $i <=  $last ; $i--)
         <option value=" $i "> $i </option>
      @endfor               
</select>

我收到了错误消息Parse error: syntax error, unexpected '&lt;' 看起来变量无法读取。 如何在for循环中设置值?

【问题讨论】:

试试这个@for ($i =$now; $i &lt;= $last; $i--) 在刀片模板中,@ 指令中的任何内容(例如您的 @for())都将被视为 php,因此无需使用 打印它的值。 【参考方案1】:

希望这会有所帮助。

<select id="year" name="year" class="form-control">
    -- */$last= date('Y')-120;/* --
    -- */$now = date('Y');/* --
    @for ($i = $now; $i <= $last; $i--)
    <option value=" $i "> $i </option>
    @endfor               
</select>

它会解决你的错误,但如果你从控制器传递你的 $last 和 $now 变量会很好。

谢谢

【讨论】:

【参考方案2】:

将您的视图更改为:

<select id="year" name="year" class="form-control ">
    <?php $last= date('Y')-120; ?>
    <?php $now = date('Y'); ?>

    @for ($i = $now; $i <= $last; $i--)
        <option value=" $i "> $i </option>
    @endfor
</select>

【讨论】:

【参考方案3】:

基本上 $last= date('Y')-120 在这部分中您正在显示值,但您需要分配值。所以像这样分配:

<?php $last= date('Y')-120; ?>

for 循环也是如此。只需比较值。不要把它放在刀片语法中。

<select id="year" name="year" class="form-control ">
     $last= date('Y')-120 
     $now = date('Y') 

    @for ($i = $now; $i >= $last; $i--)
        <option value=" $i "> $i </option>
    @endfor
</select>

【讨论】:

【参考方案4】:

你可以写

<select id="year" name="year" class="form-control ">
     $last= date('Y')-120 
     $now = date('Y') 

    @for ($i = $now ; $i <=  $last ; $i--)
    <option value=" $i "> $i </option>
    @endfor               
</select>

它会解决你的错误。

【讨论】:

【参考方案5】:

使用@for ($i = $now; $i &lt;= $last; $i--) 对我不起作用,所以我不得不使用递增计数

<div class="form-group">
  <label for="task" class="col-sm-1 control-label">Text</label>
     @for ($i = 0; $i < $count; $i++)
       <div class="col-sm-12">
           <input type="text" name="text[ $i ]" id="text[ $i ]" class="form-control">
      </div>
     @endfor
</div>

【讨论】:

【参考方案6】:

最好的方法是使用range()foreach()

例子:

@foreach(range(date('Y')-5, date('Y')) as $y)
    $y
@endforeach

结果

2014 2015 2016 2017 2018 2019 

文档:

range():https://www.php.net/manual/en/function.range.php

【讨论】:

【参考方案7】:

一个月中的几天你可以在 laravel 中这样做

<select class="form-control day-select">
   <option>Day</option>
      @foreach(range(1, 31) as $y)
        <option>$y</option>
      @endforeach
</select>

对于指定范围内的年份,如 1951 年至今,您可以按降序排列

<select class="form-control">
   <option>Year</option>
   @foreach(range(date('Y')-16, date('Y')-70) as $y)
      <option>$y</option>
   @endforeach
 </select>

【讨论】:

【参考方案8】:
    @foreach ($data as $item)
        @foreach ($order_item->where('order_id',$item->id) as $i)
        @endforeach
    @endforeach

【讨论】:

【参考方案9】:

您可以使用以下代码。

<?php $last= date('Y')-120; ?>

现在你可以像这样使用 for 循环了,

<select id="year" name="year" class="form-control ">
 $last= date('Y')-120 
 $now = date('Y') 

@for ($i = $now; $i >= $last; $i--)
    <option value=" $i "> $i </option>
@endfor
</select>

欲了解更多信息:https://slaford.com/laravel/how-to-set-value-in-for-loop-on-laravel-blade/

【讨论】:

以上是关于如何在 laravel 刀片的 for 循环中设置值的主要内容,如果未能解决你的问题,请参考以下文章

laravel 刀片模板中的 Vue.js v-for 循环

如何在 laravel 刀片视图中打破 foreach 循环?

如何在刀片模板的 foreach 循环中访问 laravel 集合?

Laravel:刀片 foreach 循环引导列

我们如何在 laravel php 刀片模板中为 foreach 循环定义循环变量

如何在 foreach 循环内的 laravel 刀片文件中运行不同的 SELECT 查询?