好的,我有一个带有selectRange / selectMonth输入的laravel表单,但我怎么能这样做所以它们都是2位数?
所以,对于我从1-31开始的第一个selectRange,所有的一位数字都是:01,02,03,04等。
而我的月份将是相同的,但是1-12号码。
{{ Form::label('day', 'What\'s your date of birth?') }}
{{ Form::selectRange('day', 01, 31, null, array('class' => 'date')) }}
{{ Form::selectMonth('month', null, array('class' => 'month')) }}
{{ Form::selectRange('year', 2014, 1880, null, array('class' => 'year')) }}
答案 0 :(得分:0)
Form::selectRange
不支持前导零。因此,您必须自己构建选项并使用普通Form::select
(如void main的答案所说)
最佳做法是编写带有前导零的可重用范围函数。
public function selectRangeLeadingZeros($name, $begin, $end, $selected = null, $options = array()){
$range = array_combine($range = range($begin, $end), $range);
foreach($range as &$value){
$value = str_pad($value, 2, "0", STR_PAD_LEFT);
}
return Form::select($name, $range, $selected, $options);
}
这基本上是selectRange
方法的内容,添加了foreach循环以将前导零置于其中。
您可以将其放在自定义帮助程序类/文件或extend the Laravel form class
中您可以像使用selectRange
答案 1 :(得分:0)
我建议您在这种情况下使用Form::select
代替Form::selectRange
。例如:
天数:
$days = [];
for($i = 1; $i <= 31; $i++){
$val = ($i < 10) ? '0'.$i : $i;
$days[$val] = $val;
}
Form::select('day', $days, '01');
几个月:
$months = [
'01' => 'January',
'02' => 'February',
'03' => 'March',
'04' => 'April',
'05' => 'May',
'06' => 'June',
'07' => 'July',
'08' => 'August',
'09' => 'September',
'10' => 'October',
'11' => 'November',
'12' => 'December'
];
Form::select('month', $months, '01');
答案 2 :(得分:0)
Laravel 5 - Laravel Collective HTML
月份和年份实际上很简单:
{!! Form::selectMonth('month', null, ['class'=>'month']) !!}
{!! Form::selectYear('year', date('Y'), date('Y')-100, null, ['class'=>'year']) !!}
至于Day,我会做类似@ mehedi-pstu-2K9的答案。
您还可以轻松添加格式。对于月份,只需将format string作为第四个参数传递。假设您正在获取信用卡信息并希望它为0-padded:
{!! Form::selectMonth('month', null, ['class'=>'month'], '%m') !!}
至于Year,我们已经传递了一个格式字符串。只需将date('Y')
的两个实例更改为date('y')
(更低的y),它就会是两位数。