次のような状況があります。
- フォーム フィールド タイプ
date
- のような検証パターン
dd.mm.YYYY
- またはなど
12
に変わるヘルパーオブジェクト。12.07.2012
2.5
02.05.2012
私の質問は、入力値を変換するメソッドをどこで呼び出すかです。
set
エンティティのメソッドから呼び出すと、値が実際に変更されます。しかし、フォームを再度ロードすると (不完全な送信など2.5
)、変換された値 ( ) ではなく、古い値 ( など2.5.2012
) が表示されます。では、エンティティ内で値が変更されたことをフォームに伝えるにはどうすればよいでしょうか。
間にそれを行う別の方法もあるかもしれません:
$form->bindRequest($request);
// do some fancy stuff here
if ($form->isValid()) {}
PHP
これはエンティティからのものです:
/**
* @ORM\Column(type="datetime", nullable=true)
* @Assert\DateTime()
*/
protected $date_start;
これはTypeからのものです:
$builder->add('date_start', 'datetime', array(
'label' => 'Start Datum/Uhrzeit',
'date_widget' => 'single_text',
'time_widget' => 'single_text',
'date_format' => 'dd.MM.yyyy',
'with_seconds' => false,
'required' => false,
));