2014-10-01 93 views
1

我需要幫助構建我的laravel自定義宏。在我開始/ global.php我需要macros.phpLaravel創建自定義窗體宏選擇年份和月份

... 
require app_path().'/macros.php'; 

和我macros.php我有這樣的代碼,我在這個site閱讀。

Form::macro('selectMonths', function() 
{ 
    $selectMonth = preg_replace('/></', '><option value="">Month</option><', Form::selectMonth('month')); 

    return $selectMonth; 
}); 

並且結果是這樣的。

<select class="form-control" name="month"> 
    <option value="">Month</option> 
    <option value="1">January</option> 
    <option value="">Month</option> 
    <option value="2">February</option> 
    <option value="">Month</option> 
    <option value="3">March</option> 
    <option value="">Month</option> 
    <option value="4">April</option> 
    <option value="">Month</option> 
    <option value="5">May</option> 
    <option value="">Month</option> 
    <option value="6">June</option> 
    <option value="">Month</option> 
    <option value="7">July</option> 
    <option value="">Month</option> 
    <option value="8">August</option> 
    <option value="">Month</option> 
    <option value="9">September</option> 
    <option value="">Month</option> 
    <option value="10">October</option> 
    <option value="">Month</option> 
    <option value="11">November</option> 
    <option value="">Month</option> 
    <option value="12">December</option> 
    <option value="">Month</option> 
</select> 

我該如何在一月之前添加本月而不是在每月之後?

謝謝!

+0

論這正好與一個不同的解決方案:http://stackoverflow.com/questions/25836731/laravel-4-formselectmonth- prepend-month – 2014-10-01 10:42:53

回答

0

嘗試使用這種模式:

/name="month">/ 

代碼:

$selectMonth = preg_replace('/name="month">/', 'name="month"><option value="">Month</option>', Form::selectMonth('month')); 

這隻應該在列表的最上方插入。

0

試試這個代碼:

Form::macro('selectMonths', function($name, $selected = null, $options = array()) 
{ 
    $selectMonth = preg_replace('/></', '><option value="">Month</option><', Form::selectMonth($name, $selected, $options), 1); 

    return $selectMonth; 
}); 

Form::macro('selectYears', function($name, $begin, $end, $selected = null, $options = array()) 
{ 
    $selectYear = preg_replace('/></', '><option value="">Year</option><', Form::selectYear($name, $begin, $end, $selected, $options), 1); 

    return $selectYear; 
}); 
0

你只是想獲得年份列表?如果是這樣,你不需要一個自定義的宏。 Laravel有你覆蓋:

{{ Form::selectYear('year', 2013, 2015) }} 

,對於月份:

{{ Form::selectMonth('month') }} 
+1

不需要年份和月份的佔位符,如選擇月份或選擇年份或公正年份或月份,其值=「」 – yaeykay 2014-10-02 17:04:35