2014-09-14 3 views
0

Как я могу предварять вариант в LaravelLaravel 4 Форма :: selectMonth месяц перед именем

{{ 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> 

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

ответ

2

Вы не можете, так что вы должны создать свой собственный массив:

$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().

+0

Im планирования для создания формы :: макрос – Ginosaurr

+0

Форма :: macro ('selectMonths', function ($ name, $ options) { // }); – Ginosaurr

+0

Im получение ошибки: Неопределенная переменная: формат – Ginosaurr

1

создать новый файл в приложении/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 в приложении/старт/global.php

Смежные вопросы