【发布时间】:2015-11-18 14:58:06
【问题描述】:
我的数据库中有一个名为start_time 的日期时间字段,我希望在用户执行特定操作时使用当前日期时间进行更新。我还希望这个字段隐藏在编辑视图中。
我在编辑视图中尝试了表单中的多种组合,并阅读了其他一些similar questions,但它不起作用(或者我不完全理解其他帖子)。
我尝试过的一些组合示例包括:
echo $this->Form->hidden('start_time', ['value' => date('Y-m-d H:i:s')]);
echo $this->Form->input('start_time', ['type'=>'hidden','value' => date('Y-m-d H:i:s')]);
如果我离开echo $this->Form->input('start_time') 的烘焙表单视图,我会看到在 HTML 中创建了单个 [年]、[月]、[日] 选择选项,只是想了解是否需要添加 6 个隐藏的表单选项涵盖 start_time[year]、start_time[month] 等...涵盖 MYSQL 日期时间格式的所有 Y-m-d H:i:s 字段...
感谢任何帮助。 谢谢!马克
【问题讨论】:
-
"not accepting" 不是一个非常精确的问题描述。到底发生了什么?与链接问题中的相同,即在创建/修补实体后,值最终为
null? -
对不起,数据被保存为
NULL所以是的,同样的事情发生在链接的问题中。我已尝试将以下内容添加到我的视图use Cake\I18n\Time; $now =new Time(date('Y-m-d H:i:s'); echo $this->Form->input('start_time', ['type'=>'hidden','value' => $now]);以及添加该帖子中详述的 beforeMarshal 函数,但它仍然保存为 NULL。 -
我让它在我需要的时候工作了,谢谢你的帮助和其他帖子。
use Cake\I18n\Time; Time::setToStringFormat('yyyy-MM-dd HH:mm:ss'); $now = Time::now(); echo $this->Form->input('start_time', ['type'=>'hidden','value' => $now]); -
使用
Time格式化理论上应该可以工作,以防它与链接问题中的问题相同,因为它将使用与编组阶段的解析器相同的格式。 -
在这种情况下,通常不需要使用
setToStringFormat,理论上传递Time::now()作为值应该已经这样做了。
标签: cakephp cakephp-3.0