Với phiên bản mới được phát hành của Zend Framework 2, two new form elements were added; DateSelect
và MonthSelect
. Tôi muốn sử dụng cái cũ, thêm ba lựa chọn; ngày, tháng và năm. Tuy nhiên, tôi có một vấn đề định dạng đầu ra như thế nào tôi muốn - và, không có tài liệu hướng dẫn cho việc này!Zend Framework 2 DateSelect/MonthSelect định dạng
Tôi thêm phần tử form mẫu của tôi như thế này (lấy từ 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%',
)
)
));
Đối với xuất ra, tôi đang làm như thế này:
echo $this->formDateSelect($form->get('birthDate'));
Cái này là tôi don 't biết làm thế nào để kiểm soát cách lựa chọn được định dạng. Ví dụ: chúng hiện được xuất trong biểu mẫu này: [month] [day], [year]
. Tôi muốn thay đổi hai điều; đầu tiên, tôi muốn chuyển đổi ngày và tháng, và thứ hai, tôi muốn loại bỏ dấu phẩy.
Người trợ giúp sử dụng lớp IntlDateFormatter
để định dạng các lựa chọn. Trong mã nguồn, tôi nhận thấy rằng bạn có thể sử dụng predefined constants cho kiểu ngày khi gọi __invoke()
[link to source code], như thế này:
echo $this->formDateSelect($form->get('birthDate'), IntlDateFormatter::SHORT);
Đã thử tất cả các hằng số, tôi vẫn không thể có được các định dạng tôi muốn.
Tôi nhận thấy rằng có getters cho ba lựa chọn, nhưng bằng cách sử dụng trợ giúp xem formSelect
với mỗi người trong số họ, lựa chọn trống được trả lại vì dân số dữ liệu nằm trong trình trợ giúp chế độ xem mới. Vì vậy, khá nhiều thất bại mục đích của việc sử dụng các lựa chọn riêng lẻ; thì tôi cũng có thể sử dụng các lựa chọn thông thường.
Có ai có ý tưởng nào về cách tôi có thể kiểm soát nhiều hơn về cách chọn của tôi được định dạng không? Thậm chí nó có thể xảy ra nếu không có quá nhiều rắc rối, hay tôi chỉ nên sử dụng ba lựa chọn thường xuyên cho sự linh hoạt tối đa?
Tôi đã giả định rằng nó đã được sử dụng miền địa phương từ cấu hình của tôi vì vậy tôi rời nó ra. Thay đổi ngôn ngữ, nó không phải lúc nào cũng cho tôi những gì tôi muốn (ví dụ, đối với đất nước của tôi nó mang lại cho tôi một định dạng mà tôi không thích). Tuy nhiên, tôi đã may mắn vì ngôn ngữ đích của tôi, định dạng chính xác là tôi muốn nó như thế nào! Tôi đã làm như thế này: 'echo $ this-> formDateSelect ($ this-> form-> get ('birthDate'), IntlDateFormatter :: LONG, 'ro_RO');'. Cảm ơn bạn rất nhiều vì câu trả lời của bạn - nó rất được đánh giá cao! – Andy0708