Laravel Создание пользовательской формы Макрос Выбор года и месяца

Мне нужна помощь в создании собственного макроса Laravel. В моем старт / global.php Я требовал macros.php

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

и на моем macros.php У меня есть этот код, который я прочитал в этом сайт.

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>

как я могу добавить этот месяц до января, а не после каждого месяца?

Спасибо!

1

Решение

Попробуйте использовать этот шаблон:

/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

Вы просто пытаетесь получить список лет? Если это так, вам не нужен пользовательский макрос. Ларавел тебя покрыл:

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

И за месяц:

{{ Form::selectMonth('month') }}
0
По вопросам рекламы [email protected]