我想在我的Doctrine 2实体中创建一个唯一的约束,以便name&test是唯一的列.含义
OBJ1
OBJ2
这应该会在测试重复时触发错误.
我尝试使用唯一约束(Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity).试着
* @UniqueEntity("name")
* @UniqueEntity("test")
Run Code Online (Sandbox Code Playgroud)
和
* @UniqueEntity({"name", "test"})
Run Code Online (Sandbox Code Playgroud)
当我有两个名称和测试重复时,两者似乎只触发错误.例如.
OBJ1
OBJ2
什么是正确的设置?或者我可能在某个地方犯了错误?
也许我应该包括如下的学说注释:
@Table(name="ecommerce_products",uniqueConstraints={@UniqueConstraint(name="search_idx", columns={"name", "email"})})
Run Code Online (Sandbox Code Playgroud)
但是我觉得那仍然不能处理我的symfony表单验证?
UPDATE
我的测试代码:
/**
* @ORM\Entity
* @ORM\Table(name="roles")
* @UniqueEntity("name")
* @UniqueEntity("test")
*/
class Role {
/**
* @var integer
* @ORM\Column(type="integer")
* @ORM\Id
* @ORM\GeneratedValue
*/
protected $id;
/**
* @var string
*
* @ORM\Column(type="string", length=32, unique=true)
* @Assert\MaxLength(32)
* @Assert\Regex("/^[a-zA-Z0-9_]+$/")
*/ …Run Code Online (Sandbox Code Playgroud)