Как проверить, что имя пользователя и почта еще не присутствуют в моей базе данных до вставки.Symfony2: FOSUserBundle - SQLSTATE [23505]: Уникальное нарушение: при регистрации пользователя
Я пробовал метод isValid()
, но он не работает.
Мои Entity:
<?php
namespace Fiducial\UserBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use FOS\UserBundle\Model\User as BaseUser;
/**
* User
*
* @ORM\Table(name="utilisateurPortail")
* @ORM\Entity(repositoryClass="Fiducial\UserBundle\Repository\UtilisateurPortailRepository")
*/
class UtilisateurPortail extends BaseUser
{
/**
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
Внутри моего контроллера:
if ($form->isValid()) {
if($userManager->findUserByUsername($user->getUsername()) != null) {
$message = 'Nom d\'utilisateur déjà utilisé';
} elseif($userManager->findUserByEmail($user->getEmail()) != null) {
$message = 'Email déjà utilisé';
} else {
$userManager->updateUser($user);
$message = 'Utilisateur ajouté !';
}
}
Я получаю эту ошибку/исключение при попытке сохранения пользователя с именем, которое уже существует в базе данных:
A Исключение произошло при выполнении 'INSERT INTO utilisateurPortail (us ername, username_canonical, электронная почта, email_canonical, включена, соль, пароль, last_login, блокировка, истечение expires_at, confirmation_token, password_requested_at, роли, credentials_expired, credentials_expire_at, идентификатор, raisonsociale, псевдоним, Prénom, fonction, envoiSMS, телефон, premiere_connexion) VALUES (?,?,?,?,?,?,?, ?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,? ,?)»с Params [ "дд", "дд", "[email protected]", "[email protected]", 1, "fhaqicni2sgko4o8s4804oo8g48wcgw", "tdsZpiC1Tzbh5mAVf23uyp9hnXDv39eEXzBh4/P3/DECu5z3QbqGHJjSSy6ccpir6T35rS5r043WSacBqazJNA ==", null, 0, 0, null, null, null, "a: 1: {i: 0; s: 16: \" ROLE_SUPER_ADMIN \ ";}", 0, null, 8, "sdfsdq", "aaa" «aaa», «dsfvsdf», 1, «3333333333», 1]:
SQLSTATE [23505]: Уникально нарушение: 7 ERREUR: л Valeur сГип clé dupliquée rompt ли contrainte уникальной «uniq_1e48ea092fc23a8» ДЕТАЛЬ: La clé «(username_canonical) = (дд)» Existe дежа.