Symfony4 使用assert-Symfony/API平台验证重复条目

Symfony4 使用assert-Symfony/API平台验证重复条目,symfony4,api-platform.com,Symfony4,Api Platform.com,当我创建用户时,我已设法验证电子邮件(不是空白和格式) 当我键入与另一个用户已有的电子邮件相同的电子邮件时,问题就出现了。Symfony将在查询时返回500个错误(在开发模式下),而在生产模式下不返回查询,而不是返回400个错误,并进行适当的描述 在生产模式下,我甚至没有机会解析错误消息,向用户显示他输入的电子邮件已经存在于数据库中 我感到惊讶的是,没有人断言这一点 我该怎么处理呢 谢谢实际上有 文档中的示例完全适合您的用例: // src/Entity/User.php namespace A

当我创建用户时,我已设法验证电子邮件(不是空白和格式)

当我键入与另一个用户已有的电子邮件相同的电子邮件时,问题就出现了。Symfony将在查询时返回500个错误(在开发模式下),而在生产模式下不返回查询,而不是返回400个错误,并进行适当的描述

在生产模式下,我甚至没有机会解析错误消息,向用户显示他输入的电子邮件已经存在于数据库中

我感到惊讶的是,没有人断言这一点

我该怎么处理呢

谢谢

实际上有

文档中的示例完全适合您的用例:

// 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;
}
实际上有

文档中的示例完全适合您的用例:

// 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;
}

NikitaU有一个断言。你是个天才,我真的应该学会更好地使用谷歌。请把它作为答案贴出来,这样我就可以接受了。非常感谢。NikitaU有一个断言。你是个天才,我真的应该学会更好地使用谷歌。请把它作为答案贴出来,这样我就可以接受了。非常感谢。