选择框验证(在laravel中)

时间:2014-08-01 06:07:06

标签: php validation select laravel

我有一个包含文本输入和选择框的表单。我正在尝试应用laravel验证。现在我想保留用户输入的值,如果验证不成功。

我可以在输入框中完成此操作,但不能在选择框中完成。如果验证未通过,如何显示先前选择的值(在选择框中)。

这是我的代码

{{Form::select('vehicles_year', $modelYears, '-1', ['id' => 'vehicles_year'])}}

<span class="help-block" id="vehicles_year_error">
    @if ($errors->has('vehicles_year')) {{$errors->first('vehicles_year')}} @endif
</span>

-1是我在表单加载时显示的默认值的键。

2 个答案:

答案 0 :(得分:2)

我所做的是添加“默认”选项,将该值设置为“无” 在验证规则中,我说这个值是必需的。如果用户没有选择 其他选项之一,验证失败。

$options = [
    'value' => 'label',
    'value' => 'label',
    'value' => 'label',
    'value' => 'label',
];

$options = array_merge(['' => 'please select'], $options);

{{ Form::select('vehicles_year', $options, Input::old('vehicles_year'), ['id' => 'vehicles_year']) }}

@if ($errors->has('vehicles_year'))
    <span class="help-block" id="vehicles_year_error">
         {{ $errors->first('vehicles_year') }}
    </span>
@endif

// Validation rules somewhere...
$rules = [
    ...
    'vehicles_year' => 'required|...',
    ...
];

答案 1 :(得分:1)

缺少控制器代码。我假设你在控制器方法中处理POST,然后你Redirect::back()->withInput();

感谢->withInput()您可以在视图中使用类似Input::old()的内容来获取上一次请求的输入值。

因此,要选择上一个项目AND默认为-1,您可以使用Input::old('vehicles_year', -1)

第一个参数是输入名称,第二个参数是默认值。

{{Form::select('vehicles_year', $modelYears, Input::old('vehicles_year', -1), ['id' => 'vehicles_year'])}}

希望这有帮助