我正在构建一个表单供用户提交DMCA投诉,其中一个设计要求是允许他们输入一个或多个网址。为此,我创建了一个实体(DMCAComplaint)和一个子实体(DMCAComplaintURL),它与Doctrine OneToMany关系中的DMCAComplaint连接。
为了通过regex验证URL条目,我设置了以下断言:
// src: Bundle/Event/DMCAComplaintURL.php
/**
* @var string
*
* @ORM\Column(name="url", type="string", length=255, nullable=false)
* @Assert\Regex(
* pattern="/(https?:\/\/)?([\w].)*example.com(\/.*)?/"),
* message="Please enter a URL within our site"
* )
*/
protected $url;
在投诉中:
// src: Bundle/Entity/DMCAComplaint.php
/**
* @var \DMCAComplaintURL
*
* @ORM\OneToMany(targetEntity="DMCAComplaintURL", mappedBy="dmcaComplaint", cascade={"persist"})
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="id", referencedColumnName="dmca_complaint_id")
* })
* @Assert\Valid
*/
protected $urls;
虽然断言有效但它只会出现以下错误:This value is not valid.
我希望它有一个自定义消息,如DMCAComplaintUrl $url
属性中所述。有没有办法让这个泡沫达到Valid
断言?或者我可以使用其他东西来获得我需要的东西吗?
答案 0 :(得分:-1)
在表单字段中将error_bubbling设置为true:
http://symfony.com/doc/current/reference/forms/types/text.html#error-bubbling