2017-05-22 5 views
-1

php artisanコマンドで新しいリクエストを作成しました。フォームを送信してlaxvelビルトイン要求をajaxで送信すると、検証の応答が正しく返されますが、以前にphp artisanで作成された新しいリクエストで検証したい場合は、すべての入力を返します無効ですが、コントローラーの配列にルールを設定してそこで使用すると、正しく動作します。php artisanで作成した新しいリクエストは、laravelのajaxで無効な応答を返す

public function postIndex(Request $request) 
{ 
    $data = $request->get('form'); 
    parse_str($data, $data); 
    // it works and return validation correctly 
    $rules = [some rules here]; 
    $validity = Validator::make($data, $rules); 
} 

public function postIndex(newRequest $request) 
{ 
    $data = $request->get('form'); 
    parse_str($data, $data); 
    // but this one returns all validations messages even if they are or not valid!!! 
    $validity = Validator::make($data); 
} 

どうすれば修正できますか?

おかげで、すべての

+1

上でエラーをキャッチフォームコードと一緒にあなたのコントローラメソッドのコードを共有します。 – Sandeesh

+0

'$ data'はあなたのコードでは定義されていません。検証ルール付きのFormRequestを使用している場合、コントローラで検証するべきではありません。 – ceejayoz

+0

私はコードを完全には書いていませんが、必要なものだけを書いています。 $ dataはhtml形式のデータです。 – simpleCoder

答えて

1

まず、$dataはあなたのコードに定義されていないとあなたが要求を作成したカスタムで検証しているとき、あなたはValidatorを呼び出す必要はありませんので、あなたの方法は、単に

public function postIndex(newRequest $request) 
{ 
    //Do whatever here 
} 
にする必要があります

そして、ちょうどあなたのAJAXコールバック

error: function(data){ 
    var errors = data.responseJSON; 
    console.log(errors); 
    } 
+0

ご覧のとおり、私はコードを完全に書いたわけではなく、必要なものだけを書いています。 $ dataはhtml形式のデータです。 – simpleCoder

+0

あなたの例に '$ data'変数のソースを入れなかったとしても、' $ validity = Validator :: make($ data); 'という行は必要ありません。 –

+0

が編集されました。今何が問題なの? – simpleCoder

関連する問題