2017-12-29 16 views
0

Typo3 6.2、私の個人的な内線で作業しています。 私はこのTCAでflexformを使用しています:TYPO3 - TCA - Datetimeformat

'eventdate' => array(
    'exclude' => 1, 
    'label' => 'Date of event :', 
    'config' => array(
     'type' => 'input', 
     'size' => 30, 
     'eval'  => 'datetime', 
     'checkbox' => '0', 
     'default' => time(), 
    ), 
), 

...と私のSQLフィールドは、私のext_tables.sqlからDATETIME、サンプルです:

CREATE TABLE xxxxxxx 
(
    eventdate DATETIME NOT NULL, 
); 

問題:保存時に、生成されましたTypo3のフィールド形式はhh:mm:ss dd:mm:yyyyですが、SQLテーブルのdatetime形式はyyyy-mm-dd hh:mm:ssで、ユーザーが保存しようとするとエラーになりますバックエンド:

1:これらのフィールドはデータベースで正しく更新されません。(eventdate) おそらくフィールドタイプとの値の不一致です。

この問題を解決するにはどうすればよいですか?

答えて

3

私はint DATA TYPEがDBのtstamp形式でDATEを保存する最も良い方法だと思います。

あなたは

CREATE TABLE xxxxxxx 
(
    eventdate int(11) unsigned DEFAULT '0' NOT NULL, 
); 
+0

完璧に動作します!ありがとう。 – Paolito75

0

元の質問のTCA構成が異なる時間形式を使用するDataHandlerにデータを保存中にTYPO3を指示dbTypeプロパティをミスを下回るようEVENTDATEデータ型を定義する必要があります(デフォルトの形式はありますunixタイムスタンプはUTCに正規化されています)。

詳しくは、https://docs.typo3.org/typo3cms/TCAReference/7.6/Reference/Columns/Input/#dbtypeを参照してください(このドキュメントはTYPO3 7.6用ですが、TYPO3 6.0以降も同様です)。

ext_tables.sql

CREATE TABLE tx_myextension_xxxxxxx (
    eventdate DATETIME default NULL 
) 

TCAのフィールド構成

'eventdate' => array(
    'exclude' => 1, 
    'label' => 'Date of event:', 
    'config' => array(
     'type' => 'input', 
     'size' => 30, 
     'eval'  => 'datetime', 
     'dbType' => 'datetime', 
     'default' => date('Y-m-d H:i:s'), 
    ), 
), 
  • のタイプinput
  • 調整デフォルト値は余分であるcheckboxを除去
  • は、TYPO3のV8

    ためdbTypeプロパティ

サイドノートを追加TYPO3のV8で使用することができdatetime値のための新しいレンダリングタイプを示しているhttps://docs.typo3.org/typo3cms/TCAReference/8.7/ColumnsConfig/Type/Input.html#rendertype-inputdatetimeを参照してください。

関連する問題