2016-04-29 18 views
0

私はLaravel 5を使用していますので、フォームに入力検証を使用したいと思います。しかし、私の検証は機能していません。なぜなのかご存知ですか?
ここで図である。
なぜ私の入力検証が機能しないのですか(laravel 5)?

<div class="form-group"><br> 

     <label for="jenis_surat" class="control-label col-sm-2">Jenis Surat</label> 
     <div class="col-sm-7"> 

      <script type="text/javascript"> 
     @if($errors->any()) 
      <div class="alert alert-danger"> 
       @foreach($errors->all() as $error) 
        <p>{{ $error }}</p> 
       @endforeach 
      </div> 
     @endif 
     </script> 

      <input class="form-control" type="text" name="jenis_surat" id="jenis_surat"> 
     </div> 
     <div class="col-md-1"> 
      <input class="form-control" type="hidden" name="_token" value="{{ Session::token() }}"> 
      <a class="btn btn-success" data-toggle="modal" data-target="#konfirmasi_submit_jenis_surat">Submit</a> 
     </div> 
    </div> 

、これはコントローラです:

public function tambahjenissurat(Request $request) 
{ 
    //input validation 
    $this->validate($request, [ 
     'jenis_surat' => 'required' 
    ]); 

    $jenis_surat = $request['jenis_surat']; 

    $jenissurat = new JenisSurat(); 
    $jenissurat->jenis_surat = $jenis_surat; 

    $jenissurat->save(); 

    return redirect()->route('jenissurat'); 
} 
+0

以下に示すようルールを検証コードはここに解決策を確認してください 1.インポート:http://stackoverflow.com/a/34421349/2594162 – Sovon

+0

は私にはありませんRoute :: group(['middleware' => ['web']]、function(){//ここにあなたのルートを追加})で[[middleware '=> [' web ']]私はそれをすべてコピーしようとしましたが、エラーがあります – hendraspt

+0

あなたはどちらのLaravelのバージョンを使用していますか? Laravel 5.2.0〜5.2.26では、すべてのルートを「Web」ミドルウェア内にラップする必要があります。この「Web」ミドルウェアはセッションをインスタンス化します。しかし、Laravel 5.2.27では、laravelは自動的にこの 'Web'ミドルウェアを追加するので、ルートをラップする必要はありません。 – Sovon

答えて

1

は、あなたがこのようにしてみてくださいもらえますか? use Validator; 2.変更を使用してバリデータが

$rules = array(
     'jenis_surat' => 'required' 
    ); 
    $validator = Validator::make(Input::all(), $rules); 
    if ($validator->fails()) { 
     return redirect()->back() 
      ->withErrors($validator); 
    } 
関連する問題