php
  • laravel
  • laravel-5.4
  • 2017-05-29 15 views 1 likes 
    1

    私は指定と呼ばれるドロップダウンを持っています。ユーザーがその中から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> 
    

    さて、私は以前に選択された1つを選択します。 これをLaravel 5.4でどうやって実現できますか?

    コードのこの部分を有し、それは私はユーザ情報を検証addUserInformation関数に来る形

    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() '' の名称(旧== $キー)それをあなたの古い値がキーと等しいかどうかをチェックします。選択された属性を追加します。 – milo526

    +0

    ありがとうございます。これは@Sandeeshの答えと全く同じです。 –

    答えて

    2

    をsubmiting後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 haha​​が助けてくれると嬉しいです – Sandeesh

    1

    あなたが好きreturn redirect()を使用して古い入力の状態を維持する必要があります。以前の要求からフラッシュさの入力を取得するには、データ

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

    取得古い、古いメソッドを使用しますRequestインスタンスに追加します。

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

    、それが好きチェック:あなたのオプションタグの内側にそれを置くendif` @選択

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

    Reference

    関連する問題