ドキュメント「 date 」から読み取れるように、制約の日付は検証のみの形式「YYYY-MM-DD」を実行します。
したがって、次の 2 つの選択肢があります。
1 つ (最も単純で論理的な方法) は、フォーム フィールド " format "で書式を手動で設定することです。
$builder->add('date', 'date', array(
'widget' => 'single_text',
'format' => 'dd-MM-yyyy',
));
このようにして、フォーム自体が日付を逆にし、正しい形式をバリデーター (およびデータベース) に渡します。
もう 1 つは、制約コールバック「callback」を作成し、独自の検証ロジックを作成することです。
文字列の結合に挿入される場合でも、別の方法があり、それは制約正規表現「regex」です。
このようにして、非常に正確な (そして複雑な) 正規表現を作成する必要があります。
最初の解決策が最も適しているのと同じくらい単純な問題の場合!
編集:
jquery ui datepicker は入力タイプのテキストにロックされるため、手動で作成する必要はありません。
例に書いたように、 を使用する'widget' => 'single_text'
と、入力タイプのテキストが生成されます!
jqueryで日付フィールドにフックするために、クラスを日付フィールドに設定できます。
簡単な例:
形:
$builder->add('date', 'date', array(
'widget' => 'single_text',
'format' => 'dd-MM-yyyy',
'attr' => array(
'class' => 'your_class'),
));
JavaScript:
$(function() {
$( ".your_class" ).datepicker();
});