Zend framework 理解Zend\Form\Element\Date
使用Zend Form 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
$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);
我想可能会更方便。最好在表单创建中进行此配置,而不是在使用它的控制器中进行此配置。)