Laravel创建自定义表单宏选择年份和月份

时间:2014-10-01 08:53:07

标签: php html5 laravel macros laravel-4

我需要帮助构建我的laravel自定义宏。在我的 start / global.php 中,我需要一个 macros.php

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

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

谢谢!

3 个答案:

答案 0 :(得分:0)

尝试使用此模式:

/name="month">/

代码:

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

这应该只在列表的最顶部插入。

答案 1 :(得分: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;
});

答案 2 :(得分:0)

您是否只是想获得一份年份清单?如果是这样,您就不需要自定义宏。 Laravel让你满意:

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

本月:

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