Forms 使用数据转换器进行Symfony验证

Forms 使用数据转换器进行Symfony验证,forms,validation,symfony,Forms,Validation,Symfony,我有一个产品实体的表单,我把标签放在里面 我遵循并使用了一个数据转换器:用户输入一个空格分隔的字符串,该字符串被分解成一个标记集合 我现在想验证转换到集合中的字符串,以便它不能使用元字符 我试过这个,但不起作用:(cf.) 如何实现这一点?在标签类的名称上添加验证,并在产品类的标签上添加“有效”断言: //AppBundle\Entity\Tag.php /** * @Assert\Regex( * pattern="/^[a-Z0-9]+$/", * match=tr

我有一个产品实体的表单,我把标签放在里面

我遵循并使用了一个数据转换器:用户输入一个空格分隔的字符串,该字符串被分解成一个标记集合

我现在想验证转换到集合中的字符串,以便它不能使用元字符

我试过这个,但不起作用:(cf.)


如何实现这一点?

在标签类的名称上添加验证,并在产品类的标签上添加“有效”断言:

//AppBundle\Entity\Tag.php
/**
 * @Assert\Regex(
 *      pattern="/^[a-Z0-9]+$/",
 *      match=true,
 *      message="Your property should match my damn regex !"
 * )
 */
private $name;


在标签类的名称上添加一个验证,在产品类的标签上添加一个“有效”断言?哇,没想到即使在数据转换后它也能工作o_o Symfony太聪明了!非常感谢。你可以添加一个答案,这样我就可以接受了。
//AppBundle\Entity\Tag.php
/**
 * @Assert\Regex(
 *      pattern="/^[a-Z0-9]+$/",
 *      match=true,
 *      message="Your property should match my damn regex !"
 * )
 */
private $name;
//AppBundle\Entity\Product.php
/**
 * @ORM\ManyToMany(targetEntity="Tag", cascade={"persist", "remove"})
 * @Assert\Valid()
 * @Assert\Regex(
 *      pattern="/[\w\s]+/",
 *      match=true,
 *      message="Your property should match my damn regex !"
 * )
 * @ORM\JoinTable(
 *      name="contenus_tags",
 *      joinColumns={@ORM\JoinColumn(name="contenu_id", referencedColumnName="id")},
 *      inverseJoinColumns={@ORM\JoinColumn(name="tag_id", referencedColumnName="id")}
 * )
 */
private $tags;