オプションとしてregex stringを取得するフィールドを作成する必要があります。Symfony2 - Regex validation
だから、PatternTypeフィールドからなる:
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は、正規表現オブジェクト内で、ウェルフォーマット設定の配列を返すを - しかし、フォームが動作しない検証を生成する際に - 任意の値を渡します。どんな考え?
これは、Abstract Typeを拡張し、validator_constant = new Regex(params)でデフォルトオプションの配列を返すcreatedフィールドです。 – McOffsky
(前回の続き)私がやっていることは、xsdファイルに基づいてフォームを生成するアプリケーションです。まず、アノテーションに書かれたフィールド(パターンや型など)の属性を持つPHP静的クラスに変換します。すべてのxsdファイルには、構造のようなかなり大きなツリーがあり、その属性とともに他のファイルも含まれています。明らかに、ポーランドの納税者番号を検証するためのカスタムフィールドが必要でした(フィールドに属性として書かれたパターンがあります)。問題は、用量が働くことです。 – McOffsky
...そして、私たちが作る注釈は、symfony2の検証注釈ではありません。より多くの情報を渡すので、formbuilder-> add();でフォームを作成します。 – McOffsky