2017-05-29 121 views
1

我有一個名爲指定的下拉菜單,用戶將在其中選擇一個,在提交後,如果出現錯誤,我想選擇所選的指定。選擇laravel中的下拉菜單的選定值5.4

我在laravel 5.4中使用了這個。

控制器

$info = DB::table("designation") 
        ->where('status','=',1) 
        ->pluck("name","id"); 

     return view('regUser.add',['check' => 'userList','designation' => $info]); 

查看文件

<div class="form-group {{ $errors->has('designation') ? ' has-error' : '' }}"> 
          <label for="designation">Designation</label> 
          <select id="designation" name="designation" class="form-control"> 
           <option value="">--- Select designation ---</option> 
           @foreach ($designation as $key => $value) 

            <option value="{{ $key }}" />{{ $value }}</option> 
           @endforeach 
          </select> 
          @if ($errors->has('designation')) 
          <span class="help-block"> 
           <strong>{{ $errors->first('designation') }}</strong> 
          </span> 
          @endif 
         </div> 

現在,如果驗證發現了一些錯誤,那麼我要選擇先前選擇之一。我怎樣才能在laravel 5.4中實現這一點。

submiting談到addUserInformation函數的形式,其中,I驗證具有這段代碼

public function addUserInformation(Request $request){ 
      $this->validate($request, [ 
       'name' => 'required|string|min:5', 
       'email' => 'required|string|email|unique:users,email', 
       'designation' => 'required|exists:designation,id', 
       'password'  => 'required|min:6', 
       'confirm_password' => 'required|same:password', 
       'userimage' => 'required|image', 
      ]); 
      $selectedID = $request->input('designation'); 
} 
+0

'@if(老( '指定')== $鍵)選擇@ endif'把你的選項標籤內,它將檢查您的舊值是否等於密鑰,如果是這樣它會添加選定的屬性 – milo526

+0

謝謝這與@Sandeesh答案完全相同。 –

回答

2

Larvel經過輸入回驗證錯誤的用戶信息之後。您可以使用old輔助函數來獲取表單的以前的值。一個簡單的比較應該做的伎倆。

<div class="form-group {{ $errors->has('designation') ? ' has-error' : '' }}"> 
    <label for="designation">Designation</label> 
    <select id="designation" name="designation" class="form-control"> 
     <option value="">--- Select designation ---</option> 
     @foreach ($designation as $key => $value) 
      <option value="{{ $key }}" {{ old('designation') == $key ? 'selected' : ''}}>{{ $value }}</option> 
     @endforeach 
    </select> 
    @if ($errors->has('designation')) 
     <span class="help-block"> 
      <strong>{{ $errors->first('designation') }}</strong> 
     </span> 
    @endif 
</div> 
+0

你現在是我的問題解決者。 –

+0

@Saroj哈哈很高興我能幫上忙 – Sandeesh

1

你必須使用return redirect()喜歡保持舊的輸入狀態:

return redirect('form')->withInput(); 

檢索舊數據

爲了取回先前請求亮出輸入,使用老方法在Request實例上。

$oldDesignation = Request::old('designation'); 

,並檢查它想:

@foreach ($designation as $key => $value) 
    $selected = ''; 
    @if($value == $oldDesignation) 
    $selected = 'selected="selected"'; 
    @endif 
    <option value="{{ $key }}" {{ $selected }} />{{ $value }}</option> 
@endforeach 

Reference