laravel7.x api参数验证参考地址
tp5.0.24
封装公共验证方法
/**
* 通用的响应
* @param int $code 错误码
* @param string $msg 错误信息
* @param array $data 返回数据
*/
protected function response($code = 200, $msg = 'success', $data = [])
{
$res = [
'code' => $code,
'msg' => $msg,
'data' => $data
];
//原生php写法
echo json_encode($res, JSON_UNESCAPED_UNICODE);
die;
//框架写法
//json($res)->send();
}
/**
* 成功的响应
* @param array $data 返回数据
* @param int $code 错误码
* @param string $msg 错误信息
*/
protected function ok($data = [], $code = 200, $msg = 'success')
{
$this->response($code, $msg, $data);
}
/**
* 失败的响应
* @param $msg 错误信息
* @param int $code 错误码
* @param array $data 返回数据
*/
protected function fail($msg, $code = 500, $data = [])
{
$this->response($code, $msg, $data);
}
控制器中验证表单并调用
//参数检测(表单验证)
$validate = $this->validate(input(), [
'username|用户名' => 'require',
'password|密码' => 'require',
]);
if ($validate !== true) {
//参数验证错误
$this->fail($validate, 401);
}
laravel7.x.x
封装通用的响应方法
/**
* 通用的响应
* @param int $code 错误码
* @param string $msg 错误信息
* @param array $data 返回数据
*/
protected function response($code = 200, $msg = 'success', $data = [])
{
return response()->json([
'code' => $code,
'msg' => $msg,
'data' => $data,
]);
}
/**
* 成功的响应
* @param array $data 返回数据
* @param int $code 错误码
* @param string $msg 错误信息
*/
protected function ok($data = [], $code = 200, $msg = 'success')
{
return $this->response($code, $msg, $data);
}
/**
* 失败的响应
* @param $msg 错误信息
* @param int $code 错误码
* @param array $data 返回数据
*/
protected function fail($msg, $code = 500, $data = [])
{
return $this->response($code, $msg, $data);
}
控制器中验证表单并调用
use Illuminate\Support\Facades\Validator;
$validator = Validator::make($request->all(), [
'password' => 'required|min:10',
'username' => 'required|min:10',
], [
'username.required' => '账号必须填写'
]);
if ($validator->fails()) {//表单验证不通过
return $this->fail($validator->errors()->first(), 401);
}
总结
这样两个框架验证效果就都变成一模一样了。