我在formbuilder中使用了collectiontype作为ticket字段,并尝试为其添加服务器端验证。但是我只是在添加Assert验证时遇到了一些错误。
function GetNames
{
$names = @()
$names += "Drin"
$names
}
错误:
“string”,“Doctrine \ ORM \ PersistentCollection”类型的预期参数
答案 0 :(得分:3)
@Assert\Length
是一个String约束,不能用于集合类型。您需要使用@Assert\Count
作为集合类型。这就是它应该是这样的:
/**
* @Assert\Count(
* min = 1,
* max = 10,
* minMessage = "At least one ticket to be added",
* maxMessage = "Not allowed"
* )
*
* @ORM\ManyToMany(targetEntity="AppBundle\Entity\EventTicket", inversedBy="events", cascade={"persist"})
*/
public $tickets;