【问题标题】:Laravel 4 Form::selectMonth prepend monthLaravel 4 Form::selectMonth 前置月份
【发布时间】:2014-09-14 18:41:33
【问题描述】:

如何在 laravel 中添加选项

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

结果

<select name="month">
    <option value="1">January</option>
    <option value="2">February</option>
    <option value="3">March</option>
    <option value="4">April</option>
    <option value="5">May</option>
    <option value="6">June</option>
    <option value="7">July</option>
    <option value="8">August</option>
    <option value="9">September</option>
    <option value="10">October</option>
    <option value="11">November</option>
    <option value="12">December</option>
</select>

我想像这样添加一个选项 value=0

<select class="form-control" name="month">
    <option value="0">Month</option>
    <option value="1">January</option>
    <option value="2">February</option>
    <option value="3">March</option>
    <option value="4">April</option>
    <option value="5">May</option>
    <option value="6">June</option>
    <option value="7">July</option>
    <option value="8">August</option>
    <option value="9">September</option>
    <option value="10">October</option>
    <option value="11">November</option>
    <option value="12">December</option>
</select>

并将默认或选中设置为月份占位符。

【问题讨论】:

    标签: php laravel laravel-4


    【解决方案1】:

    你不能,所以你必须创建自己的数组:

    $months = array(0 => 'Month');
    
    foreach (range(1, 12) as $month)
    {
        $months[$month] = strftime($format, mktime(0, 0, 0, $month, 1));
    }
    

    将其传递给您的视图:

    return View::make('viewname')->with('months', $months);
    

    并使用Form::select():

     {{ Form::select('month', $months) }}
    

    作为一个表单宏,它可以是:

    Form::macro('selectMonthWithDefault', function($name, $options = array(), $format = '%B')
    {
        $months = array(0 => 'Month');
    
        foreach (range(1, 12) as $month)
        {
            $months[$month] = strftime($format, mktime(0, 0, 0, $month, 1));
        }
    
        return Form::select($name, $months);
    });
    

    别忘了你也可以扩展 FormBuilder 类并创建一个新的Form::selectMonth()

    【讨论】:

    • 我打算像这样创建一个 Form::macro
    • Form::macro('selectMonths', function($name, $options) { // });
    【解决方案2】:

    在 app/macros.php 中新建文件并复制粘贴这行代码

    Form::macro('selectMonths', function($name, $options = array(), $format = '%B')
    {
        $months = array(0 => 'Month');
    
        foreach (range(1, 12) as $month)
        {
            $months[$month] = strftime($format, mktime(0, 0, 0, $month, 1));
        }
    
        return Form::select($name, $months, null, $options);
    });
    

    在 app/start/global.php 中需要 macros.php

    【讨论】:

      猜你喜欢
      • 2019-08-18
      • 2015-01-12
      • 2013-03-05
      • 2018-02-20
      • 2014-06-05
      • 2014-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多