2017-02-14 57 views
2

Symfony2的工作ignoreNull - UniqueEntity不工作ignoreNull到田地的Symfony2 - UniqueEntity不是兩個字段

// 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; 
} 

我嘗試添加端口空值,它拋出「這個端口已在該主機上使用。 「錯誤。

我想在端口爲空時忽略驗證。

回答

1

檢查此鏈接的解決方案。 UniqueEntity validation in symfony 2

ignoreNull¶

類型:布爾默認值:true

如果這個選項被設置爲true,那麼約束將允許多個實體有一個字段的空值不未通過驗證。如果設置爲false,則只允許一個空值 - 如果第二個實體也具有空值,則驗證將失敗。

+0

我不想添加主機但port = null多個條目,它不允許 –