Validation Laravel/Lumen:验证电子邮件的数据已存在,并进行常规验证
我正在写一个API。我想知道我怎样才能回复正确的回复Validation Laravel/Lumen:验证电子邮件的数据已存在,并进行常规验证,validation,laravel,lumen,Validation,Laravel,Lumen,我正在写一个API。我想知道我怎样才能回复正确的回复 数据无效(仅当电子邮件区域DY存在时) 数据无效(一般验证错误) 以下是我目前的代码: $data = Input::all(); $validator = Validator::make($request->all(), [ 'email' => 'required|email|unique:users,email', 'some_other_field' => 'require
- 数据无效(仅当电子邮件区域DY存在时)
- 数据无效(一般验证错误)
$data = Input::all();
$validator = Validator::make($request->all(), [
'email' => 'required|email|unique:users,email',
'some_other_field' => 'required'
]);
if ($validator->fails()) {
// NOTE: using a or b, this are my custom methods
a) return $this->existsResponse($data);
b) return $this->badRequestResponse($data);
}
如何确定电子邮件是否已经存在?您应该查看Validator类。我认为invalid()和valid()方法应该适合您。此方法返回一个键数组
您应该查看Validator类。我认为invalid()和valid()方法应该适合您。此方法返回一个键数组
您尝试执行两种不同类型的验证,因此使用两种不同的验证程序是有意义的:
$data = $request->all();
// validate email
$validator = Validator::make($data, [
'email' => 'required|email|unique:users,email',
]);
if ($validator->fails()) {
return $this->existsResponse($data);
}
// email valid, so validate other data
$validator = Validator::make($data, [
'some_other_field' => 'required'
]);
if ($validator->fails()) {
return $this->badRequestResponse($data);
}
// if here, all data is valid
嗯,您正在尝试执行两种不同类型的验证,因此使用两种不同的验证程序是有意义的:
$data = $request->all();
// validate email
$validator = Validator::make($data, [
'email' => 'required|email|unique:users,email',
]);
if ($validator->fails()) {
return $this->existsResponse($data);
}
// email valid, so validate other data
$validator = Validator::make($data, [
'some_other_field' => 'required'
]);
if ($validator->fails()) {
return $this->badRequestResponse($data);
}
// if here, all data is valid
我已经这样解决了
public function store(Request $request)
{
$data = Input::all();
// validating data
$validator = Validator::make($request->all(), [
'email' => 'required|email',
'some_other_field' => 'required'
]);
if ($validator->fails()) {
return $this->badRequestResponse($data);
}
// validating if resource exists
$userExists = User::where('email', $request->email)->count();
if($userExists) {
return $this->existsResponse($data);
}
// inserting data
$user = new User();
$user->fill($data);
$user->save();
if($user->save()) {
return $this->createdResponse($data);
}
}
我已经这样解决了
public function store(Request $request)
{
$data = Input::all();
// validating data
$validator = Validator::make($request->all(), [
'email' => 'required|email',
'some_other_field' => 'required'
]);
if ($validator->fails()) {
return $this->badRequestResponse($data);
}
// validating if resource exists
$userExists = User::where('email', $request->email)->count();
if($userExists) {
return $this->existsResponse($data);
}
// inserting data
$user = new User();
$user->fill($data);
$user->save();
if($user->save()) {
return $this->createdResponse($data);
}
}
谢谢你的努力。我尝试了invalid()方法,这在这两种情况下都给了我email元素。但未指定元素无效的原因。还有什么想法吗?谢谢你的努力。我尝试了invalid()方法,这在这两种情况下都给了我email元素。但未指定元素无效的原因。还有什么想法吗?谢谢你的努力,但这不是我的情况。不知何故,我需要确定为什么电子邮件是无效的。谢谢你的努力,但这不是我的情况。不知何故,我需要确定为什么电子邮件无效。