Проблема проверки Symfony UniqueEntity - PullRequest
1 голос
/ 27 марта 2019

Я пытался использовать ограничение UniqueEntity для простой сущности. Проблема в том, что я перенаправлен на страницу ошибки, и у меня нет сообщения об ошибке ниже моего поля.

Вот моя сущность:

use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;

/**
 * Plant
 *
 * @ORM\Table(name="plant")
 * @UniqueEntity(fields="name", message="Champ unique")
 * @ORM\Entity(repositoryClass="MyBundle\Repository\PlantRepository")
*/
class Plant
{
/**
 * @var int
 *
 * @ORM\Column(name="id", type="integer")
 * @ORM\Id
 * @ORM\GeneratedValue(strategy="AUTO")
 */
private $id;

/**
 * @var string
 *
 * @ORM\Column(name="name", type="string", length=255, unique=true)
 */
private $name;

/**
 * @var \Boolean
 *
 * @ORM\Column(name="upstream", type="boolean", nullable=true)
 */
private $upstream;

/**
 * @var \Boolean
 *
 * @ORM\Column(name="downstream", type="boolean", nullable=true)
 */
private $downstream;

// Some getters / setters

Я следовал документации: установить атрибут на unique=true, установить uniqueEntity для класса и добавить use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;

И у меня всегда есть эта ошибка на странице ошибок:

An exception occurred while executing 'INSERT INTO plant (name, upstream, downstream) VALUES (?, ?, ?)' with params ["XXXX", 0, 1]:

SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'XXXX' for key 'UNIQ_AB030D725E237E06'

Я искал решение по другой теме, но ничего не работает, и я не понимаю, где / в чем ошибка.

Кто-то знает, как справиться с этим?

1 Ответ

1 голос
/ 27 марта 2019

Я не решался удалить свой вопрос, потому что ответ немного глупый. Но я надеюсь, что это кому-нибудь пригодится.

Это не могло работать, потому что в контроллере я забыл использовать:

$form->isValid()

Так что теперь в контроллере я его добавил:

$request->isMethod('POST') && $form->handleRequest($request)->isSubmitted() && $form->isValid()

А теперь все отлично работает. Я получаю сообщение об ошибке под полем формы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...