2011-08-10 28 views
2

看看我的数据库表,我看到创建的字段总是被设置为“0000-00-00 00:00:00”。修改后的字段由合理的日期自动填充。为什么CakePHP 1.3自动填充“修改”但不是“创建”字段?

在我看来很奇怪,automagic会得到修改权,但不创建。据我所知,我没有做过任何能够解决创造的领域价值的问题 - 例如在某处指定它。是否有任何明显的CakePHP“陷阱”,我可能已经陷入了犯规,可能以某种方式搞乱了我创建的领域?

+0

只是一个猜测,但:你只能有一列current_timestamp作为默认值。因此,如果将创建的设置设置为默认为current_timestamp,则只需自动填充修改的字段。 – Jacob

+1

@cularis不正确,它不是默认值,如果某个字段被命名为“created”,以便在调用save时自动填充该值,则它是默认的CakePHP行为。它必须是DateTime类型的,我相信这是由于它显示的方式。这里还有别的东西在发生。 – stephenbayer

+0

你可以发布你的模型代码吗?还是让CakePHP处理这一切?另外,您是否可以发布正在保存新项目的控制器方法?另外,请确保视图中没有隐藏的字段引用创建的字段 – stephenbayer

回答

2

我可以在documentation找到的唯一的事情是,CakePHP的唯一控制,如果它被称为“创造”,是DateTime类型,默认值设置为NULL这个领域。你能证实你的表中所有这些都是真的吗?

+0

我认为这可能是这样做的,因为我看着我的表和创建的字段确实禁用了“允许null”。然而,修改字段也是如此,他们正在工作?我改变了其中的一个表格,以创建一个NULL缺省值并添加一条新记录,但创建和修改的日期仍然以一堆零的形式出现。 (实际上,这可能会说一些有趣的东西 - 那个修改后的工作才会起作用,而不是最初的保存点?)Bah。 – thesunneversets

+0

这很有趣。技术在平稳运行时非常棒。没有那么多,当它不。你有一个像xDebug一样调试Eclipse的IDE吗?任何时候,如果我真的感到沮丧,我会在调试器中逐行进入代码,直到找到发生垃圾的地方。 – stephenbayer

+0

哦,你好,它是从我的开发环境开始工作,只是不活。那里一定不是最新的。现在开始精确地找出问题的艰辛操作! – thesunneversets

相关问题