如何在 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 '<'
看起来变量无法读取。
如何在for循环中设置值?
【问题讨论】:
试试这个@for ($i =$now; $i <= $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 <= $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 集合?