Php Symfony2-正则表达式验证
我需要创建一个字段,作为选项获取正则表达式字符串 因此,我创建了PatternType字段:Php Symfony2-正则表达式验证,php,regex,validation,symfony,Php,Regex,Validation,Symfony,我需要创建一个字段,作为选项获取正则表达式字符串 因此,我创建了PatternType字段: public function getDefaultOptions(array $options) { $defaultOptions = array( 'data' => null, 'data_class' => null, 'trim' => true,
public function getDefaultOptions(array $options)
{
$defaultOptions = array(
'data' => null,
'data_class' => null,
'trim' => true,
'required' => true,
'read_only' => false,
'max_length' => null,
'pattern' => null,
'property_path' => null,
'by_reference' => true,
'error_bubbling' => false,
'regexp' => false,
'error_mapping' => array(),
'label' => null,
'attr' => array(),
'invalid_message' => 'This value is not valid',
'invalid_message_parameters' => array()
);
$class = isset($options['data_class']) ? $options['data_class'] : null;
// If no data class is set explicitly and an object is passed as data,
// use the class of that object as data class
if (!$class && isset($options['data']) && is_object($options['data'])) {
$defaultOptions['data_class'] = $class = get_class($options['data']);
}
if ($class) {
$defaultOptions['empty_data'] = function () use ($class) {
return new $class();
};
} else {
$defaultOptions['empty_data'] = '';
}
$patt = $options['regexp'];
unset($options['regexp']);
$defaultOptions['validation_constraint'] = new Regex(
array(
'pattern' => $patt,
'match' => true,
'message' => 'Niewłaściwy format'
)
);
var_dump($defaultOptions);
return $defaultOptions;
}
var_dump返回格式良好的设置数组,其中包含regex对象-但生成表单时验证无效-传递任何值。知道为什么吗?你为什么要这样做?已经有了一个新的解决方案。只需在验证器中使用普通文本字段
如果您需要一个没有模型类绑定的表单,请阅读。为什么要这样做?已经有了一个新的解决方案。只需在验证器中使用普通文本字段
如果您需要一个没有模型类绑定的表单,请阅读。好的,我发现了问题所在-您只能将验证器常量添加到根表单对象(其他symfony只需忽略)。所以,我需要的似乎是简单地获得根形式,添加validator\u常量和validator\u组选项集。然后只需分配字段正确的validator_组。好的,我发现了问题所在-您只能将validator常量添加到根表单对象中(其他symfony只需忽略)。所以,我需要的似乎是简单地获得根形式,添加validator\u常量和validator\u组选项集。然后只需分配字段正确的validator\u组。我已经在上面完成了:创建了扩展抽象类型的字段,并返回默认选项数组,validator\u常量=new Regex(params)。(继续上一篇文章)我正在做的是基于xsd文件生成表单的应用程序。首先,我们将其转换为php静态类,其中包含在注释中写入的字段(如模式或类型)的属性。每个xsd文件都有相当大的树状结构,包括其他文件及其属性。显然,我需要一些自定义字段来验证,例如波兰纳税人编号(我们已经将模式编写为字段的属性)。问题是dosent可以工作…我们所做的注释不是symfony2验证注释-我们通过它传递更多的信息,所以表单是由formbuilder->add()创建的;你确定你需要一张表格吗?你们可以不用表格就使用验证器。是的,客户为允许你们将损益表发送到税务局的网站付费,所以我可能需要表格;)但政府非常乐意在xsd文件中发布这些声明,并对其进行封存验证。我在上面做过:创建了扩展抽象类型的字段,并返回了默认选项数组,其中validator_constant=new Regex(params)。(上一篇文章的继续)我正在做的是基于xsd文件生成表单的应用程序。首先,我们将其转换为php静态类,其中包含在注释中写入的字段(如模式或类型)的属性。每个xsd文件都有相当大的树状结构,包括其他文件及其属性。显然,我需要一些自定义字段来验证,例如波兰纳税人编号(我们已经将模式编写为字段的属性)。问题是dosent可以工作…我们所做的注释不是symfony2验证注释-我们通过它传递更多的信息,所以表单是由formbuilder->add()创建的;你确定你需要一张表格吗?你们可以不用表格就使用验证器。是的,客户为允许你们将损益表发送到税务局的网站付费,所以我可能需要表格;)但政府非常乐意在xsd文件中发布这些声明及其封存验证。