在Laravel中,可以通过自定义表单请求(FormRequest)来实现自定义的验证错误响应。以下是一个示例代码:
首先,创建一个自定义表单请求类:
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Http\Exceptions\HttpResponseException;
class CustomFormRequest extends FormRequest
{
// 在这里定义你的验证规则
public function rules()
{
return [
'name' => 'required',
'email' => 'required|email',
];
}
// 自定义错误响应
protected function failedValidation(Validator $validator)
{
throw new HttpResponseException(response()->json([
'success' => false,
'errors' => $validator->errors()
], 422));
}
}
然后,在控制器中使用这个自定义表单请求:
use App\Http\Requests\CustomFormRequest;
class YourController extends Controller
{
public function store(CustomFormRequest $request)
{
// 验证通过后的逻辑
}
}
当表单请求验证失败时,Laravel会调用failedValidation
方法,并且你可以自定义返回的JSON格式错误响应。上面的代码会返回一个包含错误信息的JSON对象,并且响应码是422。