我需要帮助构建我的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月之前而不是每月之后添加本月?
谢谢!
答案 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') }}