2017-05-23 9 views
0

私はエンドポイントを介して私のlaravelサーバーと話します。私はLaravel Viewを使用していないので、セッションにアクセスすることはできません。リクエストのためのLaravelカスタムレスポンスメッセージ

必要なリクエストが届くと、パラメータごとに401などの応答を返す必要がありますか?可能?

FooBarインサイド

php artisan make:request FooBar

public function rules() 
{ 
    return [ 
     'subtitle' => 'required|max:255', 
     'title' => 'required|max:255', 
    ]; 
} 

public function messages() 
{ 
    return [ 
     'title.required' => abort(401, sorry), 
     // and others... 
    ]; 
} 

私が代わりにabort() laravelの文字列メッセージが応答なしにリダイレクトを使用する必要がある場合は、私は郵便配達を使用して、私は私が望むものを達成するためにどのようにステータス200を参照してください?私はそれぞれの必要なparamをレスポンスでカスタマイズしたい。

+1

これはFromRequestを使用しては不可能です。コントローラにカスタムバリデータを作成し、エラーをループして、フィールドに基づいて対応することができます。 – Sandeesh

+0

@Sandeeshああ、決してそれを知らなかった。ありがとう – Sylar

答えて

1

あなたはこのようなことをすることができます。あなたが望むものに近いが、特定のルールエラーをチェックすることはできない。フィールドが検証に失敗したかどうかだけを確認できます。

$validator = \Validator::make($request->all(), [ 
    'subtitle' => 'required|max:255', 
    'title' => 'required|max:255', 
]); 

$errors = $validator->errors(); 

if ($errors->has('title')) { 
    abort(401, 'sorry'); 
} 
+0

今、私の良い男は、これは私が何だったかです。ありがとう! – Sylar

+0

あなたは '!($ errors-> has( 'title'))'を意味しますか? – Sylar

+0

@Sylarは、検証の失敗の処理方法によって異なります。エラー配列には、失敗したすべてのルールのフィールド名とメッセージが含まれます。したがって、特定のフィールドに対して中止したい場合は、そのフィールドが失敗したかどうかを確認するために 'has'を使う必要があります。 – Sandeesh

関連する問題