【问题标题】:How to set value in for-loop on laravel blade如何在 laravel 刀片的 for 循环中设置值
【发布时间】: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,因此无需使用 {{ }} 打印它的值。

标签: php laravel date select


【解决方案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 
            

            文档:

            【讨论】:

              【解决方案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/

                  【讨论】:

                    猜你喜欢
                    • 1970-01-01
                    • 2019-03-02
                    • 2017-09-26
                    • 2019-09-11
                    • 1970-01-01
                    • 2018-04-04
                    • 2021-01-21
                    • 1970-01-01
                    • 2020-06-12
                    相关资源
                    最近更新 更多