Я не могу понять, почему ограничение Doctrine ODM Unique не работает для меня.
Ниже приведен класс страниц со свойством title, который должен быть уникальным среди всех. Страницы.
namespace App\Document;
use Symfony\Component\Validator\Constraints as Assert;
use Doctrine\Bundle\MongoDBBundle\Validator\Constraints\Unique as MongoDBUnique;
use Doctrine\ODM\MongoDB\Mapping\Annotations as ODM;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use App\Repository\PageRepository;
use App\Document\Embeded\Section;
/**
* @ODM\Document(repositoryClass=PageRepository::class)
* @MongoDBUnique(fields="title")
*/
class Page
{
/** @ODM\Id() */
private $id;
/** @ODM\ReferenceOne(targetDocument=Site::class) */
private $site;
/** @ODM\Field(type="string")
* @ODM\UniqueIndex(order="asc")
*/
private $title;
// ...
В контроллере вызывается $form->handleRequest($request)
, после чего следует запрос: if ($form->isSubmitted() && $form->isValid()
)
Форма всегда возвращается как действительная. Ограничение ODM Unique, похоже, игнорируется. Я также пытался добавить пользовательское ограничение проверки и встретился с той же проблемой.
Нужно ли добавлять какие-либо дополнительные настройки, чтобы это работало?