前に、フォームの値を変更するにはどうすれば次のような状況があります。Symfony2の:検証
- フォームフィールドの種類
date
dd.mm.YYYY
- などの検証パターン
12.07.2012
に12
をオンヘルパーオブジェクトまたは2.5
を02.05.2012
等
私の質問は次のとおりです。入力値を変換するメソッドはどこで呼び出されますか?
エンティティのset
メソッドから呼び出すと、値が実際に変更されます。しかしフォームを再度読み込むとき(例えば、不完全なサブミット)、変換された値(2.5.2012
)ではなく古い値(2.5
など)が表示されます。今、エンティティ内で値が変更されたことをフォームに伝えるにはどうすればよいですか?これはからである
/**
* @ORM\Column(type="datetime", nullable=true)
* @Assert\DateTime()
*/
protected $date_start;
:
これはエンティティからである
$form->bindRequest($request);
// do some fancy stuff here
if ($form->isValid()) {}
PHP:
はたぶんもの間に、それを行うための別の方法がありますタイプ:
$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,
));
私は以下の回答を掲載しましたが、詳細が必要な場合は、フォームタイプとモデルのコードを自由に投稿してください。 – MDrollette