2017-12-29 4 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

DB에 tstamp 형식으로 DATE를 저장하는 가장 좋은 방법은 int DATA TYPE이라고 생각합니다.

당신은

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

완벽하게 작동합니다! 감사. – Paolito75

0

원래의 질문의 TCA 구성이 다른 시간 형식을 사용하도록 DataHandler에 데이터를 저장하는 동안 TYPO3을 지시 dbType 특성이 골대를 벗어났습니다 아래처럼 EVENTDATE 데이터 유형을 정의해야합니다 (기본 형식은 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 
) 

input

  • 조정 기본값,928,151에 대한 불필요

    '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'), 
        ), 
    ), 
    

    사이드 메모를 추가했다.

  • 관련 문제