2016-09-25 100 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) !!} 

在驗證失敗後,包自動重定向後會自動處理舊值。