Tha*_*cky 4 php validation laravel laravel-request
我正在使用 Laravel 构建 REST API,想知道是否有办法在验证时自定义 API 响应。
例如,我在 Laravel 请求中有一个验证规则,表示需要特定字段。
public function rules() {
return [
'title'=>'required|min:4|max:100',
];
}
Run Code Online (Sandbox Code Playgroud)
因此,对于此验证,我在 Postman 中收到如下错误消息
{
"title": [
"Please enter Ad Title"
]
}
Run Code Online (Sandbox Code Playgroud)
我想要的是像这样自定义该响应..
{
"success": false,
"message": "Validation Error"
"title": [
"Please enter Ad Title"
]
}
Run Code Online (Sandbox Code Playgroud)
因此,错误更加具体和清晰。
那么,如何实现这一目标呢?
谢谢!
小智 5
我得到了一个解决方案,只需编写几行代码即可更改 REST-API 验证 Laravel FormRequest 验证响应。在此处输入代码
请将这两行添加到您的App\Http\Requests\PostRequest.php中
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Http\Exceptions\HttpResponseException;
Run Code Online (Sandbox Code Playgroud)
之后将此函数添加到您的文件中。
您可以将 $response 变量更改为您的特定方式。
protected function failedValidation(Validator $validator) {
$response = [
'status' => false,
'message' => $validator->errors()->first(),
'data' => $validator->errors()
];
throw new HttpResponseException(response()->json($response, 200));
}
Run Code Online (Sandbox Code Playgroud)