【问题标题】:Laravel Creating A Custom Form Macro Select Year and MonthLaravel 创建自定义表单宏选择年份和月份
【发布时间】:2014-11-26 01:41:06
【问题描述】:

我需要帮助构建我的 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>

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

谢谢!

【问题讨论】:

标签: php html laravel macros laravel-4


【解决方案1】:

尝试使用这种模式:

/name="month">/

代码:

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

这应该只将它插入到列表的最顶部。

【讨论】:

    【解决方案2】:

    试试这个代码:

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

    【讨论】:

      【解决方案3】:

      您只是想获得一份年份列表吗?如果是这样,您不需要自定义宏。 Laravel 已经为您服务了:

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

      当月:

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

      【讨论】:

      • 不,我需要带有占位符的年份和月份,例如 Select Month 或 Select Year 或 Just Year 或 Month 及其值=""
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多