Laravel创建自定义窗体宏选择年份和月份


Laravel Creating A Custom Form Macro Select Year and Month

我需要帮助构建我的laravel自定义宏。在我的start/global.php中,我需要一个宏.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>

如何在一月之前而不是每个月之后添加本月?

谢谢!

尝试使用以下模式:

/name="month">/

代码:

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

这应该只将其插入列表的最顶端。

试试这个代码:

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;
});

你只是想得到一份年份列表吗?如果是这样,则不需要自定义宏。Laravel有你的报道:

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

本月:

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