我想在Laravel中使用选择范围属性
创建一个字段 {{ Form::selectRange('number', 1, 1500000) }}
我希望范围在1到1500000之间,增量步长为50000
目前,当我创建它时,它只会创建一个增量为1
的超长选择字段答案 0 :(得分:3)
我为此创建了一个Form宏,基本上扩展了现有的selectRange宏:
class FormBuilder extends FB
{
public function selectRangeWithInterval($name, $start, $end, $interval, $default = null, $attributes = [])
{
if ($interval == 0) {
return $this->selectRange($name, $start, $end, $default, $attributes);
}
$items = [];
$startValue = $start;
$endValue = $end;
if ($interval < 0) {
$interval *= -1;
}
if ($start > $end) {
if ($interval > 0) {
$interval *= -1;
}
$startValue = $end;
$endValue = $start;
}
for ($i=$startValue; $i<$endValue; $i+=$interval) {
$items[$i . ""] = $i;
}
$items[$endValue] = $endValue;
if (!in_array($default, $items)) {
$items[$default] = $default;
}
return $this->select($name, $items, $default, $attributes);
}
}
然后可以在您的视图中使用以下内容:
{{ Form::selectRangeWithInterval('weightOfSackOfFeathers', 0, 7500, 150, null, ['class' => 'form-control input-xs']) }}
答案 1 :(得分:1)
我是用直接的php做的,因为到目前为止AFAIK laravel并不支持selectrange的步骤。
<select name="min_price" class="form-control">
<?php for ($i = 1; $i <= 15; $i++) : ?>
<option value="<?php echo $i*10000; ?>"><?php echo number_format($i*10000); ?></option>
<?php endfor; ?>
e(Input::get('min_price'))</select>