Понимание Зенд \ Форма \ Элемент \ Дата - PullRequest
0 голосов
/ 28 мая 2019

У меня две проблемы при использовании элемента даты Zend-Form.

Первое: привязка поля Действие редактирования в моем контроллере не заполняет существующую дату.Например день рождения.Поле просто пустое.(с текстом типа элемента проблема не возникает).

Вот как я инстанцировал поле:

        $this->add([
        'name' => 'geburtstag',
        'type' => 'date',
        'options' => [
            'label' => 'Geburtstag:',
            'format' => 'dd/mm/yyyy',
        ],
    ]);

А вот мое действие контроллера.

    public function addAction()
{
    $form = new AnsprechpartnerForm(NULL, $this->db);
    $form->get('submit')->setValue('save');
    $request = $this->getRequest();
    if (! $request->isPost()) {
        return ['form' => $form];
    }
    $ansprechpartner = new Ansprechpartner();
    $form->setInputFilter($ansprechpartner->getInputFilter());
    $form->setData($request->getPost());
    if (! $form->isValid()) {
        return ['form' => $form];
    }
    $ansprechpartner->exchangeArray($form->getData());
    $this->ansprechpartnerTable->saveAnsprechpartner($ansprechpartner);
    return $this->redirect()->toRoute('ansprechpartner');
}

Нет inputFilter на данный момент, я пробовал с и без.

Второй: проверка

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

enter image description here

Интересно, я получаю сообщение дважды,

1 Ответ

0 голосов
/ 31 мая 2019

Я решил это.

Элемент даты ожидает формат ymd.Теперь я дал его непосредственно на поле после привязки формы.Формат в поле теперь также коррект.

$form->bind($notizen);
$form->get('submit')->setAttribute('value', 'edit');
$filter = new \Zend\Filter\DateTimeFormatter();
$filter->setFormat('Y-m-d');
$dat = $filter->filter($notizen->datum);
$form->get('datum')->setValue($dat);

Может быть, удобнее, я думаю.

...