2016-09-25 104 views
0

我搜索了很多,但没有找到任何解决方案。我在我的HTML表单中有一些select框,我需要在重定向回输入验证后保留旧值。重定向回Laravel 5中的'select'值

这里是控制器

redirect()->back()->withInput()->withErrors($validator->messages()); 

我一直在使用value={{old('somefieldname')}}尽了重定向代码,但它仅适用于输入和文字区域。

PS:我还需要在multiple="multiple"中选择old值。

任何帮助将非常感激。

回答

3

如果你迭代在一个循环中,然后直接过去不会为选择选项

工作,例如,如果你有类似的东西在你的刀片文件 那么你可以试试这个选择当前选项重定向

<select id="someId" name="someName"> 

@foreach($someData as $data) 
    <option value="{{ $data->id }}" @if(old('someName') == $data->id) selected @endif> {{ $data->name }} </option> 
@endforeach 

</select> 

然后它会选择您当前的选项。

如果这是你的问题,那么它可能会有所帮助。

+0

谢谢你。这是完美的 。 –

+0

很高兴帮助@NiteshVerma :) – Vikash

+0

你能告诉它如何工作多选?因为在'old'中会有一个数组。 –

0

在select中,当option = value等于old时,必须将selected = selected。也请考虑使用laravelcollective/html包。您可以这样使用它:

{!! Form::select('type', ['' => 'Types'] + $options) !!} 

在验证失败后,包自动重定向后会自动处理旧值。