Zend framework 理解Zend\Form\Element\Date

Zend framework 理解Zend\Form\Element\Date,zend-framework,zend-form,zend-framework3,zend-validate,Zend Framework,Zend Form,Zend Framework3,Zend Validate,使用Zend Form date元素时有两个问题 第一:字段绑定 “我的控制器”中的“编辑”操作不会填入现有日期。比如生日。这块地是空的。(对于元素类型文本,没有问题) 下面是我如何实例化该字段: $this->add([ 'name' => 'geburtstag', 'type' => 'date', 'options' => [ 'label' => 'Geburtstag

使用Zend Form date元素时有两个问题

第一:字段绑定 “我的控制器”中的“编辑”操作不会填入现有日期。比如生日。这块地是空的。(对于元素类型文本,没有问题)

下面是我如何实例化该字段:

        $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
目前,我尝试使用和不使用

第二:验证

我填写日期有困难。虽然我没有对这个字段使用任何过滤器,但我希望,我可以填写任何日期

有趣的是,我得到了双重信息

我解决了

date元素需要y-m-d格式。现在,我在绑定表单后直接将其提供给字段。该字段中的格式现在也是korrekt

$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);

我想可能会更方便。

最好在表单创建中进行此配置,而不是在使用它的控制器中进行此配置。)