[英]Laravel Custom Form Select Macro
请帮我使用我从此网站获得的自定义选择宏。 当您添加的起始值小于最终值时,此代码可以正常工作。
Form::macro('selectRangeWithDefault', function($name, $start, $end, $selected = null, $default = null, $attributes = [])
{
if ($default === null) {
return Form::selectRange($name, $start, $end, $selected, $attributes);
}
$items = [];
if (!in_array($default, $items)) {
$items[''] = $default;
}
if($start > $end) {
$interval = -1;
$startValue = $end;
$endValue = $start;
} else {
$interval = 1;
$startValue = $start;
$endValue = $end;
}
for ($i=$startValue; $i<$endValue; $i+=$interval) {
$items[$i . ""] = $i;
}
$items[$endValue] = $endValue;
return Form::select($name, $items, isset($selected) ? $selected : $default, $attributes);
});
当从起始值开始增加一个值,而在结束值之间增加一个值时,它将中断。 请帮我解决此代码的家伙
如果您的起始值大于最终值,则设置“ start = end”和“ end = start”。 如果要(需要)从起始值循环到最终值,则每次都需要增加“ 1”。 但是,如果将间隔设置为“ -1”,并且从起始值(现在小于结束值)开始,则循环将永远不会停止。
更改
if($start > $end) {
$interval = -1;
$startValue = $end;
$endValue = $start;
进入
if($start > $end) {
$interval = 1;
$startValue = $end;
$endValue = $start;
使它工作。
编辑:解释
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.