2017-09-01 40 views
1

我有一個表單。提交表單後,如果有一些錯誤,那麼它會重定向到同一頁面並預先填充用戶提交的數據。我有這種形式的3 checkbox字段。假設用戶只檢查了first checkbox並提交了表單。所以如果表單有一些錯誤,它會重定向到同一頁面,但是問題是它再次在這裏重定向,然後all the checkboxes got selected instead of only the 1st oneLaravel複選框輸入舊的不能正常工作

<div class="form-group"> 
    <label>Hobbies: <span><em>{{$errors->first('hobbies')}}</em></span></label> 
    <input type="checkbox" name="hobbies[]" value="Cricket" @if (is_array(old('hobbies'))) && (in_array('Cricket', old('hobbies'))) checked @endif> Cricket 
    <input type="checkbox" name="hobbies[]" value="Football" @if (is_array(old('hobbies'))) && (in_array('Football', old('hobbies'))) checked @endif> Football 
    <input type="checkbox" name="hobbies[]" value="Badminton" @if (is_array(old('hobbies'))) && (in_array('Badminton', old('hobbies'))) checked @endif> Badminton 
</div> 
+0

有你輸入::舊的(? – rahulsm

+0

沒有。我沒有檢查我使用laravel 5.4 –

+0

其中laravel的版本,您正在使用? – rahulsm

回答

0

你應該這樣做的方式,使其工作,

<div class="form-group"> 
    <label>Hobbies: <span><em>{{$errors->first('hobbies')}}</em></span></label> 
    <input type="checkbox" name="hobbies[]" value="Cricket" {{ !empty(old('hobbies')) && (in_array('Cricket', old('hobbies'))) ? 'checked' : '' }}> Cricket 
    <input type="checkbox" name="hobbies[]" value="Cricket" {{ !empty(old('hobbies')) && (in_array('Football', old('hobbies'))) ? 'checked' : '' }}> Football 
    <input type="checkbox" name="hobbies[]" value="Cricket" {{ !empty(old('hobbies')) && (in_array('Badminton', old('hobbies'))) ? 'checked' : '' }}> Badminton 
</div> 

給它一個嘗試,它應該工作。

1

你有不平衡和錯位的圓括號,所以你的if是不正確的評估。

@if (is_array(old('hobbies')) && in_array('Badminton', old('hobbies'))) 
+0

是的,你是對的。 –