使用断言验证重复条目 - Symfony/API-Platform
Validate duplicate entry using assert - Symfony/API-Platform
当我创建用户时,我成功地验证了电子邮件(不是空白和格式)。
当我键入与另一个用户已有的相同电子邮件时,问题就出现了。 Symfony 将 return 500 错误与查询(在开发模式下)和没有查询在生产模式下而不是 returning 400 错误与一些适当的描述。
在生产模式下,我什至没有机会解析错误消息以向用户显示他输入的电子邮件已存在于数据库中。
我很惊讶没有断言。
我该如何处理?
谢谢
其实还有 an assert for it
文档中的示例完全符合您的用例:
// src/Entity/User.php
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
// DON'T forget the following use statement!!!
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
use Symfony\Component\Validator\Constraints as Assert;
/**
* @ORM\Entity
* @UniqueEntity("email")
*/
class User
{
/**
* @ORM\Column(name="email", type="string", length=255, unique=true)
* @Assert\Email
*/
protected $email;
}
当我创建用户时,我成功地验证了电子邮件(不是空白和格式)。
当我键入与另一个用户已有的相同电子邮件时,问题就出现了。 Symfony 将 return 500 错误与查询(在开发模式下)和没有查询在生产模式下而不是 returning 400 错误与一些适当的描述。
在生产模式下,我什至没有机会解析错误消息以向用户显示他输入的电子邮件已存在于数据库中。
我很惊讶没有断言。
我该如何处理?
谢谢
其实还有 an assert for it
文档中的示例完全符合您的用例:
// src/Entity/User.php
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
// DON'T forget the following use statement!!!
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
use Symfony\Component\Validator\Constraints as Assert;
/**
* @ORM\Entity
* @UniqueEntity("email")
*/
class User
{
/**
* @ORM\Column(name="email", type="string", length=255, unique=true)
* @Assert\Email
*/
protected $email;
}