我在控制器中为电子邮件编写验证
public function store(Request $request)
{
/*
* validate request
*/
$request->validate([
'email' => ['required', 'unique:leads', 'email'],
]);
return response()->json([],422);
if (AppModelsLead::where(['email' => $request->get('email')])->count() > 0) {
// user found
return response()->json([ 'data' => [
'message' => 'lindirizzo email è già registrato'
]], 200);
}
else {
// Register the new user or whatever.
$client = AppModelsLead::create(['email' => $request->get('email'),]);
return response()->json([ 'data' => [
'message' => 'Registrato con successo!'
]], 201);
}
}
当我在前面写同样的电子邮件时,我会收到错误POSThttp://127.0.0.1:8000/api/register/leads422(不可处理内容(
我的网络响应正常,{"消息":"验证.唯一","错误":{"电子邮件":["验证.独特"]}但我不想在控制台中显示错误
这行代码是不必要的。
// ...
return response()->json([],422);
// ...
移除它。
写入验证逻辑
。。。如果验证失败,正确的响应将自动生成。如果验证通过,我们的控制器将继续正常执行。
附录
下面的代码块也是不必要的,因为验证规则'unique:leads'
是足够的:
// ...
if (AppModelsLead::where(['email' => $request->get('email')])->count() > 0) {
// user found
return response()->json([ 'data' => [
'message' => 'lindirizzo email è già registrato'
]], 200);
}
// ...
也将其移除!
如果您希望为";独特的电子邮件">验证,将其添加为->validate(...)
方法的第二个参数:
$request->validate([
'email' => ['required', 'unique:leads', 'email'],
], [
'email.unique' => 'lindirizzo email è già registrato'
]);
首先,您需要检查表中是否有可用的电子邮件。如果你发现了该电子邮件的任何计数,那么只需忽略创建记录,否则你可以在数据库中添加一个新条目来添加该电子邮件。
if (Lead::where(['email' => $request->get('email')])->count() > 0) {
return response()->json([ 'data' => [
'message' => 'User data get successfully'
]], 200);
}else{
// Add a user with new email and send json response
}
}