Zend Framework 2 の新しくリリースされたバージョンでは、2 つの新しいフォーム要素が追加されました。DateSelect
とMonthSelect
。3つの選択を追加する前者を使用したい。日、月、年。ただし、出力を希望どおりにフォーマットするのに問題があります。これに関するドキュメントはありません。
次のようにフォーム要素をフォームに追加しています (このページから取得):
$this->add(array(
'type' => 'Zend\Form\Element\DateSelect',
'name' => 'birthDate',
'options' => array(
'label' => 'Date',
'create_empty_option' => true,
'day_attributes' => array(
'data-placeholder' => 'Day',
'style' => 'width: 20%',
),
'month_attributes' => array(
'data-placeholder' => 'Month',
'style' => 'width: 20%',
),
'year_attributes' => array(
'data-placeholder' => 'Year',
'style' => 'width: 20%',
)
)
));
出力については、次のようにしています。
echo $this->formDateSelect($form->get('birthDate'));
問題は、選択がフォーマットされる方法を制御する方法がわからないということです。たとえば、現在は次の形式で出力されています[month] [day], [year]
。2 つのことを変更したいです。まず、日と月を入れ替えたい。次に、コンマを取り除きたい。
ヘルパーは、IntlDateFormatter
クラスを使用して選択をフォーマットします。ソース コードでは、次のように [link to source code] を呼び出すときに、日付型に定義済みの定数を使用できることに気付きました。__invoke()
echo $this->formDateSelect($form->get('birthDate'), IntlDateFormatter::SHORT);
すべての定数を試してみましたが、まだ必要な形式を取得できません。
3 つの選択に getter があることに気付きましたが、formSelect
それぞれにビュー ヘルパーを使用すると、データの入力が新しいビュー ヘルパー内にあるため、空の選択がレンダリングされます。そのため、選択を個別に使用する目的さえほとんど無効になります。次に、通常の選択を使用することもできます。
私の選択がどのようにフォーマットされているかをより詳細に制御する方法を知っている人はいますか? あまり手間をかけずに可能ですか、それとも最大の柔軟性のために3つの通常の選択を使用する必要がありますか?