Laravel/Lumen api 的电子邮件修剪
Laravel/Lumen email trimming for api
我正在使用 Laravel/Lumen 开发 api。我看到很少有用户抱怨即使他们的电子邮件完全没问题,我的 api 回复却说 The email must be a valid email address.
我看到的是,他们在发送电子邮件后错误地给出了 space,例如 'noob@user.com '
。结果,系统不接受该电子邮件。到目前为止,我在我的代码中使用的是:
try {
$this->validate($request, [
'first_name' => 'required|min:3|max:40',
'last_name' => 'required|min:3|max:40',
'email' => 'required|email|unique:clients,email',
'profile_photo' => ''
]);
} catch (ValidationException $e) {
return response()->json($this->clientTransformer->validationFailed($e), 200);
}
我尝试在 try 块的第一行中添加以下行,但未能更改 $request 对象 属性。
try{
$request->email = trim($request->email, ' '); //<= or
$request->email = str_replace(' ', '', $request->email); // <= this line
$this->validate($request, [
'first_name' => 'required|min:3|max:40',
'last_name' => 'required|min:3|max:40',
'email' => 'required|email|unique:clients,email',
'profile_photo' => ''
]);
}
但是这些都不起作用。这是将完全相同的电子邮件传递给验证方法。有什么快速的方法吗?
您可以使用:
$request->replace(array('email' => trim($request->email)));
或
$request->merge(array('email' => trim($request->email)));
来源:
https://laracasts.com/discuss/channels/general-discussion/laravel-5-modify-input-before-validation
我正在使用 Laravel/Lumen 开发 api。我看到很少有用户抱怨即使他们的电子邮件完全没问题,我的 api 回复却说 The email must be a valid email address.
我看到的是,他们在发送电子邮件后错误地给出了 space,例如 'noob@user.com '
。结果,系统不接受该电子邮件。到目前为止,我在我的代码中使用的是:
try {
$this->validate($request, [
'first_name' => 'required|min:3|max:40',
'last_name' => 'required|min:3|max:40',
'email' => 'required|email|unique:clients,email',
'profile_photo' => ''
]);
} catch (ValidationException $e) {
return response()->json($this->clientTransformer->validationFailed($e), 200);
}
我尝试在 try 块的第一行中添加以下行,但未能更改 $request 对象 属性。
try{
$request->email = trim($request->email, ' '); //<= or
$request->email = str_replace(' ', '', $request->email); // <= this line
$this->validate($request, [
'first_name' => 'required|min:3|max:40',
'last_name' => 'required|min:3|max:40',
'email' => 'required|email|unique:clients,email',
'profile_photo' => ''
]);
}
但是这些都不起作用。这是将完全相同的电子邮件传递给验证方法。有什么快速的方法吗?
您可以使用:
$request->replace(array('email' => trim($request->email)));
或
$request->merge(array('email' => trim($request->email)));
来源:
https://laracasts.com/discuss/channels/general-discussion/laravel-5-modify-input-before-validation