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时忽略验证。
答案 0 :(得分:1)
请检查此链接以获取解决方案。 UniqueEntity validation in symfony 2
<强>ignoreNull¶强>
类型:布尔值默认值:true
如果此选项设置为true,则约束将允许多个实体为字段设置空值而不会使验证失败。如果设置为false,则只允许一个空值 - 如果第二个实体也具有空值,则验证将失败。