唯一实体错误消息
Unique Entity Error message
我有一个用户实体,它有一些独特的字段。
下面的代码向您展示了我是如何定义它的。
/**
* @UniqueEntity(fields={"login"}, message="UNIQUE ERROR MESSAGE")
*/
......
/**
* @var string
*
* @ORM\Column(name="login", type="string", length=255, unique=true)
*/
private $login;
正在开发 API,我希望能够发送正确的错误状态和正确的错误消息。
当我在数据库中插入一个重复的条目时,我想得到消息和一个与它是重复的事实相关的异常。
相反,我收到 SQL 消息的 500 错误。
{
"error": {
"code": 500,
"message": "Internal Server Error",
"exception": [
{
"message": "An exception occurred while executing 'INSERT INTO .... \n\nSQLSTATE[23505]: Unique violation: 7 ERROR: duplicate key value violates unique constraint \"uniq_1d1c63b3aa08cb10\"\nDETAIL: Key (login)=(bast) already exists.",
"class": "Doctrine\DBAL\DBALException",
"trace": [
这是我获得 500 的地方。
$test = new Utilisateur();
$test->setLogin('test');
$manager = $this->getDoctrine()->getManager();
$manager->persist($test);
$manager->flush();
如何检索消息 "UNIQUE ERROR MESSAGE"?
Symfony 验证器服务可以直接用于验证定义了验证约束的任何对象。例如在控制器中:
$validator = $this->get('validator');
$errors = $validator->validate($test);
要在服务中执行验证,您可以将验证器服务传递到您的服务中。
我有一个用户实体,它有一些独特的字段。
下面的代码向您展示了我是如何定义它的。
/**
* @UniqueEntity(fields={"login"}, message="UNIQUE ERROR MESSAGE")
*/
......
/**
* @var string
*
* @ORM\Column(name="login", type="string", length=255, unique=true)
*/
private $login;
正在开发 API,我希望能够发送正确的错误状态和正确的错误消息。
当我在数据库中插入一个重复的条目时,我想得到消息和一个与它是重复的事实相关的异常。 相反,我收到 SQL 消息的 500 错误。
{
"error": {
"code": 500,
"message": "Internal Server Error",
"exception": [
{
"message": "An exception occurred while executing 'INSERT INTO .... \n\nSQLSTATE[23505]: Unique violation: 7 ERROR: duplicate key value violates unique constraint \"uniq_1d1c63b3aa08cb10\"\nDETAIL: Key (login)=(bast) already exists.",
"class": "Doctrine\DBAL\DBALException",
"trace": [
这是我获得 500 的地方。
$test = new Utilisateur();
$test->setLogin('test');
$manager = $this->getDoctrine()->getManager();
$manager->persist($test);
$manager->flush();
如何检索消息 "UNIQUE ERROR MESSAGE"?
Symfony 验证器服务可以直接用于验证定义了验证约束的任何对象。例如在控制器中:
$validator = $this->get('validator');
$errors = $validator->validate($test);
要在服务中执行验证,您可以将验证器服务传递到您的服务中。