2016-04-18 7 views
0

私のプロジェクトでLaravel 5.2.29を使用しています。私はユーザーの入力を検証するためにLaravel Requestファイルを使用しています。バリデータが失敗した場合は、入力フィールドの下にエラーメッセージが表示されます。

しかし、問題は、バリデータが失敗すると、エラーメッセージもフォームも送信されません。ここ

public function authorize() 
    { 
     return true; 
    } 

    /** 
    * Get the validation rules that apply to the request. 
    * 
    * @return array 
    */ 
    public function rules() 
    { 
     return [ 
      'email'  => 'required|email', 
      'password' => 'required|min:3|confirmed' 
     ]; 
    } 

testController.php(リソースコントローラ)

3つの入力、電子メール/パスワードとパスワードの確認

test.blade.php

<!-- email input--> 
<div class="form-group {{ $errors->has('email') ? 'has-error' : '' }}"> 
    <label class="col-md-4 control-label" for="email">email</label> 
     <div class="col-md-4"> 
     <input id="Name" name="email" type="text" placeholder="Enter email address" class="form-control input-md" required=""> 
     {!! $errors->first('email','<span class="help-block">:message</span>') !!} 
     </div> 
</div> 

<div class="form-group {{ $errors->has('password') ? 'has-error' : '' }}"> 
    <label class="col-md-4 control-label" for="password">password</label> 
     <div class="col-md-4"> 
     <input id="Name" name="password" type="password" class="form-control input-md" required=""> 
     {!! $errors->first('password','<span class="help-block">:message</span>') !!} 
     </div> 
</div> 
<div class="form-group {{ $errors->has('password_confirmation') ? 'has-error' : '' }}"> 
    <label class="col-md-4 control-label" for="password">Confirm Password</label> 
    <div class="col-md-4"> 
     <input id="Name" name="password_confirmation" type="password" class="form-control input-md" required=""> 
     {!! $errors->first('password_confirmation','<span class="help-block">:message</span>') !!} 
    </div> 
</div> 


    <!-- Button --> 
<div class="form-group"> 
    <label class="col-md-4 control-label" for=""></label> 
    <div class="col-md-4"> 
    <button id="" name="" class="btn btn-primary">Submit</button> 
    </div> 
</div> 

testRequest.phpを取るブレード・ファイルがあります

public function store(testRequest $request) 
    { 
     $test = User::create([ 
      'email' => $request->email, 
      'password' => bcrypt($request->password); 
     ]); 
     return redirect("/"); 
    } 

routes.php

Route::group(['middleware'=>['web']],function(){ 
    Route::resource('test','testController'); 
}); 

[確認パスワード]フィールドに別のパスワードを入力して送信ボタンを押すと、エラーが表示されません。フォームも提出しません。パスワードの確認が一致しないと少なくとも言わなければなりません。私は自分のコードに間違いはないと思う。それはバージョン5.2.29の問題ですか?まったく同じことが5.2.22でうまくいきます。

+0

を確認することができますRoute::resource('test','testController');を書くあなたが定義しているあなたのコントローラに「\のHttp \アプリを使用\ testRequestを要求しますか」?私は同じバージョンとその作品を使用しているので、 – Vipul

+0

@Vipul yes ofcourse。あなたがそれを追加しないと、テストページに移動する直前にエラーが表示されます - クラスが見つかりません –

答えて

0

このバグが見つかりました。 laravel 5.2.29から、Webミドルウェアはデフォルトですべてのルートに適用されます。したがって、次のコードを記述することはできません。

Route::group(['middleware'=>['web']],function(){ 
    Route::resource('test','testController'); 
}); 

単にあなたがルートサービスプロバイダ