我目前正在从事一个项目,投标需要填写 API 凭据。我想在保存之前确保凭据没问题。
我想制定一个自定义验证规则,我使用用户名和密码来调用 API,以检查凭据是否正确。我可以将验证规则添加到 api_username,但是由于受保护的 $validator->data 属性,我无法获取密码。
有人可以帮我解决这个问题吗?
public function rules()
{
return [
'title' => 'required|string',
'api_username' => 'required|string|min:32|max:32|api_cred_check',
'api_password' => 'required|string|min:32|max:32',
];
}
public function withValidator($validator)
{
$validator->addExtension('api_cred_check', function ($attribute, $value, $parameters, $validator) {
//Use credentials to make call to API.
});
$validator->addReplacer('api_cred_check', function ($message, $attribute, $rule, $parameters, $validator) {
//Message if Username and Password won't match.
});
}
您还可以像这样使用 clouser 作为自定义验证
public function rules()
{
return [
'title' => 'required|string',
'api_username' => ['required', 'string', 'min:32', 'max:32', function ($attr, $value, $fail) {
// You can use guzzle Http here to make an API call
}],
'api_password' => ['required', 'string', 'min:32', 'max:32', function ($attr, $value, $fail) {
// You can check if Username and Password is wrong.
}],
];
}
使用最后一个参数 $fail 作为函数 $fail('如果验证失败,则显示您想要的消息。');
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句