异常错误信息处理
use Illuminate\Http\Exceptions\HttpResponseException;
use Symfony\Component\HttpKernel\Exception\HttpException;
class ValidateException{
/** 定义错误信息json,可针对逻辑上的问题或验证抛出此错误来终止程序
* @param string $massage
* @param int $code
*/
public static function abnormal($msg = 'error', $code = 400){
$response = response()->json([
'code' => $code,
'msg' => $msg,
],$code);
throw new HttpResponseException($response);
}
/** 抛出异常,header状态码同code
* @param string $massage
* @param int $code
*/
public static function throwOut($massage = 'error', $code = 400){
throw new HttpException($code, $massage);
}
}
返回的错误信息格式,响应头header
状态码同 code
{
'code' => 400,
'msg' => '错误信息',
}
在 FormRequest
中重写 failedValidation
方法,表单验错误信息简单化
use App\Exceptions\ValidateException;
use Illuminate\Contracts\Validation\Validator;
class FormRequest{
protected function failedValidation(Validator $validator)
{
$error = $validator->errors()->first();
ValidateException::abnormal($error,400);
}
}
本作品采用《CC 协议》,转载必须注明作者和本文链接
直接重写这个方法就可以了,表单验证错误系统是给的422错误。
在
request
文件夹下定义BaseRequest
,让其他的request
类继承BaseRequest
,在BaseRequest
中重写failedValidation
方法