隨着最新發布的Zend Framework 2的版本,two new form elements were added; DateSelect
和MonthSelect
。我想用前者,增加三個選擇;日,月和年。但是,我有一個格式化輸出的問題,我想如何 - 而且,沒有任何文檔!Zend Framework 2 DateSelect/MonthSelect格式
我加入表單元素,以我的形式是這樣的(從this page拍攝):
$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]
。我想改變兩件事。首先,我想切換日期和月份,其次,我想擺脫逗號。
幫助者使用IntlDateFormatter
類來格式化選擇。在源代碼中,我注意到,你可以打電話時__invoke()
[link to source code],像這樣使用predefined constants date類型:
echo $this->formDateSelect($form->get('birthDate'), IntlDateFormatter::SHORT);
已經嘗試了所有的常量,我仍然不能得到我想要的格式。
我注意到有三個選擇的getters,但是使用formSelect
視圖助手與他們每個人,空選擇被渲染,因爲數據填充在新的視圖助手內。因此,即使單獨使用選擇,也幾乎失敗了。那麼我不妨使用常規選擇。
有沒有人有任何想法如何獲得更多的控制我的選擇如何格式化?是否可以沒有太多的麻煩,或者我應該只使用三個常規選項來獲得最大的靈活性?
我只是假設它是使用我的配置中的區域設置,所以我將它遺漏了。改變語言環境,它並不總是給我我想要的東西(例如,對於我的國家,它給了我一種我不喜歡的格式)。不過,我很幸運,對於我的目標語言,格式正是我想要的!我這樣做:'echo $ this-> formDateSelect($ this-> form-> get('birthDate'),IntlDateFormatter :: LONG,'ro_RO');'。非常感謝您的回答 - 非常感謝! – Andy0708