Я использую Symfony 4.2 и ReactJS.У меня есть форма с почтой.Эта почта должна быть уникальной.Таким образом, у меня есть UniqueEntity, включенный в Entity.
Проблема заключается в следующем, когда я пытаюсь создать учетную запись с помощью формы, она выдает ошибку 500: "An error occurred","hydra:description":"An exception occurred while executing \u0027INSERT INTO app_users (id, username, email, is_active, firstname, lastname, api_link_key, facebook_id, facebook_picture_url) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)\u0027 with params XXXXXX : Unique violation: 7 ERROR: duplicate key value violates unique constraint \u0022uniq_c2502824f85e0677\u0022\nDETAIL: Key (username)=(XXXXXX) already exists."
Так что у меня нет сообщения об ошибкев форме может быть из-за этой ошибки 500?Или, может быть, я должен где-то установить сообщение об ошибке?
В моей сущности, когда я устанавливаю поле почты, я также устанавливаю поле имени пользователя с тем же значением. UniqueEntity запрещает иметь одинаковое значение в двух полях в одной строке?
Моя сущность:
* @ORM\Table(name="app_users")
* @ORM\Entity(repositoryClass="App\Repository\UserRepository")
* @UniqueEntity("email")
*/
class User implements UserInterface, \Serializable
{
/**
* @ORM\Column(type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\Column(type="string", length=254, unique=true)
* @Encrypted
*/
private $username;
/**
* @ORM\Column(type="string", length=255, unique=true)
* @Assert\Email()
* @Assert\NotBlank()
* @Encrypted
*/
private $email;
[...]
public function getEmail()
{
return $this->email;
}
public function setEmail($email): void
{
$this->email = $email;
$this->username = $email;
}
}
Спасибо за вашу помощь