TYPO3会不时在一个字段中重置所有日期时间
我几个月前写的extbase扩展有问题: 正常情况下,一切正常,但在某个时刻,系统会将某个字段的所有DateTime信息更新回表的每个条目中的1.1.1970 有一种课程模式。这些包含三个日期时间字段。课程的日期、开始和结束。问题只发生在日期字段中。在模型中,其定义如下:TYPO3会不时在一个字段中重置所有日期时间,typo3,extbase,Typo3,Extbase,我几个月前写的extbase扩展有问题: 正常情况下,一切正常,但在某个时刻,系统会将某个字段的所有DateTime信息更新回表的每个条目中的1.1.1970 有一种课程模式。这些包含三个日期时间字段。课程的日期、开始和结束。问题只发生在日期字段中。在模型中,其定义如下: /** * date * * @var \DateTime */ protected $date = NULL; ** * Returns the date * * @return \DateTime $da
/**
* date
*
* @var \DateTime
*/
protected $date = NULL;
**
* Returns the date
*
* @return \DateTime $date
*/
public function getDate() {
return $this->date;
}
/**
* Sets the date
*
* @param \DateTime $date
* @return void
*/
public function setDate(\DateTime $date) {
$this->date = $date;
}
在TCA中,定义为:
'date' => array(
'exclude' => 1,
'label' => 'shortend for example',
'config' => array(
'type' => 'input',
'size' => 7,
'eval' => 'date',
'checkbox' => 1,
'default' => time()
),
),
在数据库(MySQL)中,字段设置为INT(11)
- 没有活动的cron作业
- 我没有设置date anywhere手册(仅通过extbase依赖项注入机制)
xan我想添加它作为评论,但我不允许(因为我的声誉)
我预计php中的DateTime对象会出现问题,以及它如何存储在存储库中。mysql字段是一个int。php中的DateTime不是整数,而是一个对象。在将日期时间保存到数据库之前,可能需要将其转换为时间戳(=整数) 我认为你的最后一句话指向了解决方案: 还有一件更奇怪的事情:Evendo所有的“date”值都被更新,现在显示的是1970年1月1日的datevalue,这些值是不同的(那些是整数),并显示2的幂(从128开始)或它们的组合(例如q.1'792(1024+512+256))
我怀疑在表设置的
ctrl
部分,您将日期
字段设置为排序
列。因此,在移动记录时,TYPO3将更改相应的值,以确保记录的正确顺序,例如在后端列表中或在为前端输出选择记录时。为了便于在某处插入记录(而不必对所有内容重新排序),TYPO3默认使用2的倍数。我从未在TCA中使用过“default”=>time()。。也许这就是问题所在?尝试删除“默认”行。。据我所知,如果没有“默认值”=>0,extbase会自动设置当前时间……谢谢你的建议。我直接尝试了一下,创建了一个新项目(正确的日期),之后又移动了=>错误的日期。你使用哪一个版本?由于TYPO3 4.5,输入字段上的“复选框”属性不再使用。。我不认为这是你问题的解决方案,但我还是想说。我真的认为“默认值”=>time()是问题所在。。删除线路后是否清除了整个缓存?请删除该行并重新安装扩展或清除安装工具中的缓存。。问题在于,当您设置default=>time()时,当前时间戳缓存在TCA中,如果系统缓存未失效,则可能会导致错误的默认值…安装了TYPO3 6.2.15。复选框是一个很好的提示,谢谢。但是,是的,我在那之后清除了整个缓存,多次(我试了不止一次)。我会再试一次,但到目前为止,在行为上没有区别。非常感谢你的努力!我不这么认为,因为正如typo3tcaReference所说:“将字段设置为评估输入,以UNIX时间(秒)返回数据库的日期”。如果设置了,Extbase将为您执行转换。”评估“=>”日期“,。。()搜索“设置字段以将输入评估为日期”。。如果我错了,请纠正我。经过这么长时间——这就是它!非常感谢,配置确实设置为sortby->crashing字段。我将立即改变这一点,并在以后的项目中牢记这一点。再次感谢你,沃尔夫先生!