And*_*ter 7 validation laravel
当我们在控制器中使用Laravel 表单请求并且验证失败时,表单请求将重定向回errors变量。
redirection当数据无效时,如何禁用并返回自定义错误响应?
我将使用表单请求来GET|POST|PUT请求类型。
我试过这Validator门课来解决我的问题,但我必须使用表单请求。
$validator = \Validator::make($request->all(), [
'type' => "required|in:" . implode(',', $postTypes)
]);
if ($validator->fails()) {
return response()->json(['errors' => $validator->errors()]);
}
Run Code Online (Sandbox Code Playgroud)
N'B*_*yev 15
创建自定义FormRequest类是要走的路。
namespace App\Http\Requests;
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Validation\ValidationException;
use Illuminate\Http\Exceptions\HttpResponseException;
class FormRequest extends \Illuminate\Foundation\Http\FormRequest
{
protected function failedValidation(Validator $validator)
{
if ($this->expectsJson()) {
$errors = (new ValidationException($validator))->errors();
throw new HttpResponseException(
response()->json(['data' => $errors], 422)
);
}
parent::failedValidation($validator);
}
}
Run Code Online (Sandbox Code Playgroud)
类位于app/Http/Requests目录中。在 Laravel 6.x 中测试和工作。
基类FormRequest有方法failedValidation。FormRequest尝试在你的后代中覆盖它
use Illuminate\Contracts\Validation\Validator;
class SomeRequest extends FormRequest
{
...
public function failedValidation(Validator $validator)
{
// do your stuff
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4684 次 |
| 最近记录: |