给出了“string”,“Doctrine \ ORM \ PersistentCollection”类型的预期参数

时间:2016-11-28 07:04:12

标签: symfony

我在formbuilder中使用了collectiontype作为ticket字段,并尝试为其添加服务器端验证。但是我只是在添加Assert验证时遇到了一些错误。

function GetNames
{
    $names = @()
    $names += "Drin"
    $names
}

错误:

“string”,“Doctrine \ ORM \ PersistentCollection”类型的预期参数

1 个答案:

答案 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;