在 Zend framework2 上以 datetimelocal 表单元素从数据库中获取数据
Getting data from a database in a datetimelocal form element on Zend framework2
我使用 Zend Framework 2 设置了一个元素类型为 'DateTimeLocal'
的表单
当我使用表单添加新记录时一切正常。
当我编辑记录时,表格似乎填写正确:我已经格式化数据以传递给表格使用:
$this->startDate = (!empty($data['startDate'])) ? date("Y-m-d\TH:i:s",strtotime($data['startDate'])) : null;
并在视图中添加使用:
echo $this->formRow($form->get('startDate'));
然而,当我提交已进行编辑的表格时,我收到消息 'The input does not appear to be a valid date'。使用 chrome 我重新输入日期,它看起来与预先填写的日期相同,但随后提交正常。
html zendframework 渲染的源代码是:
<label><span>Start Date</span><input type="datetime" name="startDate" value="2014-12-21T00:00:00"></label>
我原以为这是一个常见的动作,但似乎很难找到例子。
我不太确定,对此问题感到有些惊讶。但值 2014-12-21T00:00:00
似乎是 2014-12-21T00:00:00
的 html 编码版本,提交此值可能会导致无效响应。
我不知道这个值是怎么来的,但你应该尝试为 startDate
设置一个未编码的值,然后你的表单可能会按预期工作。
我最终偶然发现了
我的日期格式不正确。我应该用
$this->startDate = (!empty($data['startDate'])) ? date("Y-m-d\TH:i",strtotime($data['startDate'])) : null;
我使用 Zend Framework 2 设置了一个元素类型为 'DateTimeLocal'
当我使用表单添加新记录时一切正常。
当我编辑记录时,表格似乎填写正确:我已经格式化数据以传递给表格使用:
$this->startDate = (!empty($data['startDate'])) ? date("Y-m-d\TH:i:s",strtotime($data['startDate'])) : null;
并在视图中添加使用:
echo $this->formRow($form->get('startDate'));
然而,当我提交已进行编辑的表格时,我收到消息 'The input does not appear to be a valid date'。使用 chrome 我重新输入日期,它看起来与预先填写的日期相同,但随后提交正常。
html zendframework 渲染的源代码是:
<label><span>Start Date</span><input type="datetime" name="startDate" value="2014-12-21T00:00:00"></label>
我原以为这是一个常见的动作,但似乎很难找到例子。
我不太确定,对此问题感到有些惊讶。但值 2014-12-21T00:00:00
似乎是 2014-12-21T00:00:00
的 html 编码版本,提交此值可能会导致无效响应。
我不知道这个值是怎么来的,但你应该尝试为 startDate
设置一个未编码的值,然后你的表单可能会按预期工作。
我最终偶然发现了
我的日期格式不正确。我应该用
$this->startDate = (!empty($data['startDate'])) ? date("Y-m-d\TH:i",strtotime($data['startDate'])) : null;