2016-01-20 33 views
0

我有几个月前写过的extbase扩展有问题: 一般而言,一切正常,但在某些时候,系统会更新某个特定日期的所有DateTime信息现场回到了1979年1月1日,在表格的伊夫里进入。TYPO3不时在一个字段中重置所有日期时间

有一个课程模型。那些包含三个DateTime字段。日期,课程的开始和结束。该问题只发生在日期字段中。在该模型中,它被定义为这样:

/** 
* 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作业活跃
  • 我没有设定日期的任何地方手册(仅在extbase依赖注入机制)

我不知道为什么会这样或什么它被解雇了。自从11月份发布该页面以来,它发生了三次。

一个更奇怪的事情:Evendo所有的'日期'值被更新,现在显示1970年1月1日的日期值,值是不同的(那些是整数)并且显示2(从128开始)或组合的指数(eq 1'792(1024 + 512 + 256))

我可以复制的唯一东西: 当课程项目从一个系统文件夹移到另一个系统文件夹时,该项目的日期(但不是全部,像在其他错误)下降到1.1.1970

如果有人可以帮助我,即使有暗示或怀疑,什么可能是错的或为什么会发生,我会很高兴。滴答作响的定时炸弹的感觉,导入另一个备份后,每次,是不是有光泽可言;)提前 XAN

+0

我从来没有在TCA中使用'default'=> time()..也许这就是问题所在?尝试删除“默认”行..据我所知,extbase自动设置当前时间,如果没有'默认'=> 0 ... – Chris

+0

感谢您的建议。我直接尝试了它,并创建了一个新的项目(正确的日期),然后再将它移动=>错误的日期。 – xanobius

+0

您使用哪种TYPO3版本?由于TYPO3 4.5输入字段的'复选框'属性不再使用..我不认为这是你的问题的解决方案,但我想说无论如何.. – Chris

回答

0

我认为你最后的一句话点到了解决方案:

A更奇怪的事情:Evendo所有“date'值被更新,现在显示为01.01.1970 DATEVALUE,该值是不同的(那些是整数)和第2显示幂(开始于128)或它们的组合(当量1'792(1024 + 512 + 256))

我怀疑在表格设置的ctrl部分,您将date字段设置为sorting列。因此,当移动记录时,TYPO3将改变相应的值以确保正确的记录排序。在后端列表中或选择前端输出的记录时。为了便于在某处插入记录(并且不必重新排序然后),TYPO3默认使用2的倍数。

+0

毕竟这一次 - 这就是它!非常感谢,确实是将配置设置为sortby - >崩溃字段。 我会立即改变这种情况,并为进一步的项目记住它。 再次谢谢沃尔夫先生! – xanobius

0

我最好将其添加为一个注释

谢谢,但我不允许(因为我的声誉)。

我期待从PHP的DateTime对象以及它如何存储在存储库中的问题。 mysql字段是一个int。来自php的DateTime不是整数,而是一个对象。也许您需要将DateTime转换为时间戳(=整数),然后再将其保存到数据库。

+0

我不这么认为,因为TYPO3 TCAReference说:“设置字段来评估输入到UNIX时间(秒)返回到数据库的日期”。如果你设置的话,Extbase正在为你做转换。 'eval'=>'date',..(https://docs.typo3.org/typo3cms/TCAReference/Reference/Columns/Input/Index.html)搜索“设置字段以评估输入的日期” .. 如我错了请纠正我。 – Chris

相关问题