[英]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.