zend-framework - 理解 Zend\Form\Element\Date
问题描述
我在使用 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
,我试过有没有。
第二:验证
我无法填写日期。虽然我没有为此字段使用任何过滤器,但我希望我可以填写任何日期。
有趣的是,我得到了双重信息。
解决方案
我解决了。
日期元素需要格式 ymd。现在我在绑定表单后直接给了字段。该字段中的格式现在也是 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);
我想可能会更方便。
推荐阅读
- php - 如何根据 XML 节点中的记录在 PHP 中编辑大型 XML 文件
- spring-boot - 是否可以在单个 Spring Boot 应用程序上同时支持 REST 和 SOAP API?
- git - 无法从我的分支发布更改 - 只能将更改推送到另一个分支,为什么?
- html - 如何等待下载完成?
- python - RuntimeWarning:reduce return 中遇到溢出
- javascript - 带有 rxjs 的内部订阅数组
- c++ - Flatbuffers:在 C++ 中写入读取二进制文件问题?
- android - 蓝牙扫描未检测到蓝牙设备
- mongodb - 如何在Mongo中按日期分组
- c++ - 如何更改图标的“开启”状态颜色?