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