FormRequestで検証が失敗した場合、カスタムタグを追加する必要があります。FormRequestで検証が失敗した場合にレスポンスで追加データを追加する方法Laravel
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class StoreMessage extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'name' => 'required|max:100',
'email' => 'required|email',
'message' => 'required|max:1000'
];
}
public function withValidator(\Illuminate\Validation\Validator $validator)
{
$validator->after(function ($validator) {
if($validator->fails()) {
$validator->errors()->add('status', 'error');
}
});
}
}
検証の私のいずれかが唯一、私は私がstatus = success
を追加する必要があり、他のJSONレスポンスにstatus = error
を追加する必要が失敗した場合。また、私の応答ステータスが、私は0
{
"message": "The given data was invalid.",
"errors": {
"name": [
"The name may not be greater than 100 characters."
],
"status": [
"error"
]
}
}
これの目的は、私がエラーかどうかを識別するためのフラグを必要とするフォームを送信するためにAjaxリクエストを送信していますされるレベルにそれを必要とerrors
タグの下にネストされ
「tは助けのおかげメイトパニック。クエリでは、ifブロック内のUnprocessable Entityを照合することは安全です。それは常にこれを返すか、最も安全な方法がありますか? – Abhishek
@Abhishek良い質問です。私は安全だと思います.HTTPステータスのテキスト部分です(jQueryのドキュメントから引用されています)ので、常に正確に応答コード422と一致します。これがLaravelの検証失敗が返すもので、AFAIKは返さないその他の状況。 –
ご協力いただきありがとうございます。 – Abhishek