簡體   English   中英

Laravel自定義表單選擇宏

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM