Laravel 4 Form :: selectMonth prepend month

Как я могу добавить опцию в Laravel

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

Результат

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

Я хочу добавить значение параметра = 0, как это

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

И установите значение по умолчанию или выберите заполнитель месяца.

0

Решение

Вы не можете, поэтому вам придется создать свой собственный массив:

$months = array(0 => 'Month');

foreach (range(1, 12) as $month)
{
$months[$month] = strftime($format, mktime(0, 0, 0, $month, 1));
}

передать его на ваш взгляд:

return View::make('viewname')->with('months', $months);

и использовать Form::select():

 {{ Form::select('month', $months) }}

В качестве макроса формы это может быть:

Form::macro('selectMonthWithDefault', function($name, $options = array(), $format = '%B')
{
$months = array(0 => 'Month');

foreach (range(1, 12) as $month)
{
$months[$month] = strftime($format, mktime(0, 0, 0, $month, 1));
}

return Form::select($name, $months);
});

И не забудьте, что вы также можете расширить класс FormBuilder и создать новый Form::selectMonth(),

2

Другие решения

создайте новый файл в app / macros.php и скопируйте эту строку кодов

Form::macro('selectMonths', function($name, $options = array(), $format = '%B')
{
$months = array(0 => 'Month');

foreach (range(1, 12) as $month)
{
$months[$month] = strftime($format, mktime(0, 0, 0, $month, 1));
}

return Form::select($name, $months, null, $options);
});

требуется macros.php в app / start / global.php

1