gpt4 book ai didi

php - REST API 请求参数验证 Laravel

转载 作者:可可西里 更新时间:2023-11-01 00:18:47 26 4
gpt4 key购买 nike

我是 Laravel API 的新手。我正在尝试通过 Laravel 的验证方法验证发送到 POST 请求的参数。

以下数据是我通过 POST 请求发送的唯一参数。我想使用 Laravel 的验证方法验证 device_id 的唯一性。

data => {"device_id":"xxxxxx2C-9EA3-4FFB-B26D-E8E483xxxxxx","password":"ANVp285x","user_type":"1"} 

我可以验证唯一的数据参数,但是没有正确的响应或错误消息它抛出异常。我的主要动机是验证 device_idpassworduser_type

这是我 Controller 的商店

public function store(Request $request) {

try {
$result = $this->validate($request, [
'data' => 'required',
// 'data.device_id' => 'required|unique:users|max:60',
// 'data.password' => 'required|min:6|confirmed',
// 'data.user_type' => 'required',
]);
$user = new User;
// Parameters from request
$data = json_decode($request->data, TRUE);
$user->device_id = $data['device_id'];
$user->password = bcrypt($data['password']);
$user->u_type = $data['user_type'];

// Parameters to be generated
$user->qr_code_image = "test_qr_code.png";
$user->access_code = MyHelper::generate_access_code();
$user->save();
$user = User::find($user->id);
$result = Fractal::item($user, new UserTransformer)->getArray();
if (!empty($result['data'])) {
$result['status'] = TRUE;
$result['message'] = 'Success';
} else {
$result['status'] = FALSE;
$result['message'] = 'Failed';
}
} catch (\Exception $e) {
$result['status'] = FALSE;
$result['message'] = 'Failed';
}
return $result;
}

最佳答案

您可以使用 Illuminate\Support\Facades\Validator 来验证 API 中的请求:

 $validator = Validator::make($request->all(), [
"device_id" => "required|unique:devices",
"user_type" => "required",
"password" => "required",
]);

if ($validator->fails()) {
return response(
$validator->errors(),
400
);
}

关于php - REST API 请求参数验证 Laravel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43649589/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com