我尝试在Syfony 5.4实体中同时使用唯一和主机名约束。
/**
* @ORM\Column(name="domain", type="string", length=150, nullable=false, unique=true)
* @Assert\NotBlank()
* @Assert\Hostname()
*/
private $domain;
这个验证没有问题,但是当我添加Unique约束时,它失败了,并显示消息-这个值应该是数组类型|迭代器聚合。
/**
* @ORM\Column(name="domain", type="string", length=150, nullable=false, unique=true)
* @Assert\NotBlank()
* @Assert\Unique()
* @Assert\Hostname()
*/
private $domain;
我需要两个验证,是的,在这种情况下,它失败的数据库插入,但我想验证形式。如何正确的方式?
谢谢你DR
1条答案
按热度按时间7xzttuei1#
如果我没理解错的话,你想验证域(或主机名)在数据库表中是唯一的,在这种情况下,你必须使用
UniqueEntity
参见https://symfony.com/doc/current/reference/constraints/UniqueEntity.html。值得一提的是,这并不能保护您免受竞争条件的影响。