Уникальное ограничение для одного поля в Doctrine MongoDB ODM в Symfony4 - PullRequest
0 голосов
/ 08 декабря 2018

Я бы хотел, чтобы мой адрес электронной почты был УНИКАЛЬНЫМ в коллекции User.Я пробовал много способов, но я все еще могу вставить тот же адрес электронной почты.

Вот мой класс:

<?php

namespace App\Document;

use Doctrine\ODM\MongoDB\Mapping\Annotations as ODM;
use Gedmo\Mapping\Annotation as Gedmo;
use JMS\Serializer\Annotation\ExclusionPolicy;
use JMS\Serializer\Annotation\Expose;
use Symfony\Component\Security\Core\User\UserInterface;
use Symfony\Component\Validator\Constraints as Assert;
use Doctrine\Bundle\MongoDBBundle\Validator\Constraints\Unique as MongoDBUnique;

/**
 * @ODM\Document(
 *     collection="User",
 *     repositoryClass="App\Document\Repository\UserRepository"
 * )
 * @MongoDBUnique(fields={"email"})
 * @ExclusionPolicy("all")
 */
abstract class User implements UserInterface, \Serializable
{
    /**
     * @var ODM\Id $id
     * @ODM\Id(strategy="auto")
     * @Expose
     */
    private $id;

    /**
     * @ODM\Field(type="string")
     * @Assert\NotBlank()
     * @Assert\Length(max=60)
     * @Assert\Email()
     * @ODM\UniqueIndex(order="asc")
     * @Expose
     */
    private $email;

Заранее спасибо:)

...