Symfony UniqueEntity验证问题

时间:2019-03-27 09:52:33

标签: php symfony validation

我试图在一个简单的实体上使用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 个答案:

答案 0 :(得分:1)

我犹豫要删除我的问题,因为答案有点愚蠢。但我希望它对某人有用。

它无法工作,因为在控制器中,我忘了使用:

$form->isValid()

所以现在在控制器中添加了它:

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

现在一切正常。我在表单字段下方收到错误消息。