Symfony2 - UniqueEntity不工作ignoreNull有两个字段

时间:2017-02-14 06:11:01

标签: php validation symfony

Symfony2 - UniqueEntity无法使用ignoreNull with fields

// src/AppBundle/Entity/Service.php
namespace AppBundle\Entity;

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

/**
 * @ORM\Entity
 * @UniqueEntity(
 *     fields={"host", "port"},
 *     errorPath="port",
 *     message="This port is already in use on that host."
 * )
 */
class Service
{
    /**
     * @ORM\ManyToOne(targetEntity="Host")
     */
    public $host;

    /**
     * @ORM\Column(type="integer", nullable = true)
     */
    public $port;
}

我尝试添加具有空值的端口,它会抛出"此端口已在该主机上使用。"错误。

我希望在port为null时忽略验证。

1 个答案:

答案 0 :(得分:1)

请检查此链接以获取解决方案。 UniqueEntity validation in symfony 2

<强>ignoreNull¶

类型:布尔值默认值:true

如果此选项设置为true,则约束将允许多个实体为字段设置空值而不会使验证失败。如果设置为false,则只允许一个空值 - 如果第二个实体也具有空值,则验证将失败。