Ron*_*Ron 2 php regex zend-form zend-framework2
正如我在这里概述的那样GeoPositionFields.因为Zend不支持这个,所以我选择了标准RegEx验证器.
它工作得很好,但我仍然需要一个自定义错误消息 - 任何想法如何实现这一点?
我的例子中的那个什么都没做......
/**
* @ORM\Column(type="string")
* @Form\Filter({"name":"StringTrim"})
* @Form\Validator({"name":"Regex", "options":{"pattern":"/(-?\d{1,3}\D\d+)[^\d-]+(-?\d{1,3}\D\d+)/"}})
* @Form\ErrorMessage("My custom message")
* @Form\Attributes({"type":"text"})
* @Form\Options({"label":"GeoPos"})
*
*/
protected $geopoint;
Run Code Online (Sandbox Code Playgroud)
即便是这个也只是被忽视了:
@Form\Messages({"regexNotMatch": "My custom message"})
Run Code Online (Sandbox Code Playgroud)
您必须使用messages选项中的密钥覆盖默认消息.
试试这个(我想你必须把它修剪成一行才能使注释起作用;)这取决于你,呵呵.
@Form\Validator({
"name":"regex",
"options":{
"pattern":"/(-?\d{1,3}\D\d+)[^\d-]+(-?\d{1,3}\D\d+)/",
"messages":{
"regexInvalid":"Regex is invalid, Booo!",
"regexNotMatch": "Input doesn't match, bleeeeh!",
"regexErrorous": "Internal error, i'm like wtf!"
}
}
})
Run Code Online (Sandbox Code Playgroud)
每个Validator都有自己的消息.建议您查看源代码以找出每个元素中存在的ErrorMessages.举个例子,请点击此链接(点击)查看如何了解消息密钥.
当使用array-style-syntax创建Annotations之外的表单时,对于像这样的键的statis方法可能会更安全一点
'messages' => array(
\Zend\Validator\Regex::INVALID => "Regex is invalid, Booo!",
//etc...
)
Run Code Online (Sandbox Code Playgroud)
因为字符串 - 至少在理论上 - 总是可以改变,所以常量不会.