この質問はSymfony PHPフレームワークに関するものです。SymfonyのDateTimeToArrayTransformerはフォームフィールドの名前を使用して1つの値を作成しますか?
Symfonyが複合フォームタイプの値を単一の値にマッピングする方法をよりよく理解したいと思います。
DateType
フォームタイプを使用し、月、日、年のそれぞれのフィールドを使用するように構成すると、独自のフィールド名を持つ別々のフォームフィールドが作成されます。
DateType
にもデータトランスがあります。通常、データトランスはデータをあるフォーマットから別のフォーマットに変換するだけです。しかし、私にとっては、DateTimeToArrayTransformer
もそのコンストラクタでフォームフィールド名を取得するようです。
はここにコンストラクタを参照してください:
/**
* Constructor.
*
* @param string $inputTimezone The input timezone
* @param string $outputTimezone The output timezone
* @param array $fields The date fields <--- See this parameter.
* @param bool $pad Whether to use padding
*
* @throws UnexpectedTypeException if a timezone is not a string
*/
public function __construct($inputTimezone = null, $outputTimezone = null, array $fields = null, $pad = false)
{
//...
DateTimeToArrayTransformer on github
私はfields
パラメータに関するインターネット上の任意のより多くの情報を見つけることができません。しかし、私はそれが既存のフォームフィールドのフィールド名を意味する印象を受けます。
もちろん、symfonyはmonth
,day
、year
フィールドのフォームフィールド値を集めて1つの文字列値にする必要があります。しかし、これはデータトランスフォーマーや別の方法で行いますか?
これは私が知りたいことです。
https:// githubを参照してください。( '年'、 '月'、 '日') 'は、実際のフォームフィールド名を含んでいます(例えば、 '/'、 '/'、 '上記のビルダーで使用されているフィールド名)、またはそれ以外のものはありますか?ビルダーで使用されている名前を参照していますか? – user2190492
これは正式なフォームフィールド名です。実際のhtmlの ''にはおそらく何らかの形式の接頭辞が含まれています。しかし、このフォームタイプとこのトランスフォーマーが一緒に働くように設計されているのは単なる例です。それは一般的なルールではありません。 –