Z nowo wydaną wersją Zend Framework 2, two new form elements were added; DateSelect
i MonthSelect
. Chcę użyć tego pierwszego, który dodaje trzy selekcje; dzień, miesiąc i rok. Mam jednak problem z formatowaniem wyniku tak, jak chcę - i nie ma na to dokumentacji!Zend Framework 2 DateSelect/MonthWybierz formatowanie
dodaję elementu formularza do mojego formularza tak (zaczerpnięte z 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%',
)
)
));
do wyprowadzania, robie tak:
echo $this->formDateSelect($form->get('birthDate'));
Chodzi o to, że ja don wiesz, jak kontrolować sposób formatowania zaznaczeń. Na przykład, są one obecnie wyprowadzane w tej postaci: [month] [day], [year]
. Chcę zmienić dwie rzeczy; najpierw chcę zmienić dzień i miesiąc, a po drugie chcę pozbyć się przecinka.
Pomocnicy używają klasy IntlDateFormatter
do formatowania zaznaczeń. W kodzie źródłowym, zauważyłem, że można użyć predefined constants dla typu data Dzwoniąc __invoke()
[link to source code], tak:
echo $this->formDateSelect($form->get('birthDate'), IntlDateFormatter::SHORT);
Po wypróbowaniu wszystkich stałych, nadal nie mogę dostać formatu chcę.
zauważyłem, że istnieją pozyskiwaniu dla trzech wybiera, ale używając formSelect
widok pomocnika z każdym z nich, puste wybiera są renderowane, ponieważ populacja danych jest w nowym widoku pomocników. Więc to prawie pokonuje cel, nawet przy użyciu selekcji indywidualnie; wtedy równie dobrze mogę użyć zwykłych selekcji.
Czy ktoś ma pojęcie, w jaki sposób mogę uzyskać większą kontrolę nad sposobem formatowania moich selekcji? Czy jest to możliwe bez zbytniego wysiłku, czy też powinienem użyć trzech regularnych selekcji, aby uzyskać maksymalną elastyczność?
Po prostu zakładałem, że używałem ustawień regionalnych z mojej konfiguracji, więc go opuściłem. Zmieniając ustawienia regionalne, nie zawsze daje mi to, czego chcę (na przykład dla mojego kraju daje mi format, który mi się nie podoba). Jednak miałem szczęście, że dla mojego języka docelowego formatowanie jest dokładnie takie, jak tego chcę! Zrobiłem to tak: 'echo $ this-> formDateSelect ($ this-> form-> get ('birthDate'), IntlDateFormatter :: LONG, 'ro_RO');'. Dziękuję bardzo za odpowiedź - jest to bardzo cenne! – Andy0708