ZF2 Получение выбранного значения из элемента DateSelect

В моем приложении я использую элемент DateSelect для получения дня рождения пользователя. Когда я проверяю форму, выбирая значения дня рождения, мое поле остается пустым, поскольку оно должно вернуть мне формат даты.

Мой код формы;

$this->add(array(
'name' => 'date_of_birth',
'type' => 'DateSelect',
'options' => array(
'create_empty_option' => true,
'max_year'            => date('Y') - 12,
'day_attributes'      => array(
'data-placeholder' => 'Day',
'style'            => 'width: 31.5%',
),
'month_attributes'    => array(
'data-placeholder' => 'Month',
'style'            => 'width: 31.5%',
),
'year_attributes'     => array(
'data-placeholder' => 'Year',
'style'            => 'width: 31.5%',
)
),
));

Получение элементов формы на мой взгляд:

<?php echo $this->formRow($form->get('date_of_birth')); ?>

И проверить вывод в моем контроллере:

..
Debug::dump($_POST);

.....
Debug::dump($form->getData());

$ _POST возвращает;

 ....
'day' => string '06' (length=2)
'month' => string '05' (length=2)
'year' => string '1999' (length=4)
...

Но $ form-> getData () возвращает;

 ....
'date_of_birth' => null
....

Это должно дать мне date_of_birth, заполненную датой, насколько я читаю в Интернете (блог). Что я делаю неправильно?

0

Решение

К настоящему времени я использую обходной путь, как указано ниже, если кто-то понял, как правильно управлять им, пожалуйста, дайте мне знать!

$aPostData = $request->getPost();
if ($request->getPost('year') && $request->getPost('month') && $request->getPost('day')) {
$dateTimeFormat = new \DateTime(date('Y-m-d', strtotime($request->getPost('year') . '-' . $request->getPost('month') . '-' . $request->getPost('day'))));
$aPostData['date_of_birth'] = $dateTimeFormat->format('Y-m-d');
}
$form->setData($aPostData);
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector