Typo3 8.7:尝试从数据库表获取crdate会返回null

时间:2019-01-15 12:44:42

标签: php typo3 typo3-8.x

在我的typo3 8.7扩展程序中,我试图从数据库中获取已登录用户的typo3标准列crdate。现在的问题是,我的数据库查询返回null或0,这取决于我为crdate使用的数据类型。显然,该列存在,并用int值填充。

正如我在此处的其他问题以及在其他平台上所建议的那样

1.将crdate添加到相关的TCA Configuration
2.转到Model以使其可访问。

TCA

'columns' => array(.....
  'crdate' => array(
        'exclude' => 0,
        'label' => 'LLL:EXT:someExt/Resources/Private/Language/locallang_db.xlf:tx_someExt_domain_model_someModelName.crdate',
        'config' => array(
            'type' => 'passthrough',
            'size' => 30,
            'eval' => 'trim'
        ),
    )

模型

/**
 * crdate
 *
 * @var integer
 */
protected $crdate = 0;

/**
 * @return int $crdate
 */
public function getCrdate()
{
    return $this->crdate;
}

/**
 * @param int $crdate
 */
public function setCrdate($crdate)
{
    $this->crdate = $crdate;
}

控制器

$currentUser = $this->relatedRepository->findByEmail($currentUserEmail);

//Now the $currentUser object has all attributes of the table, but as my 
//title 
//states the crdate value still is 0. ( If I use datatype date it returns 
//null)

1 个答案:

答案 0 :(得分:1)

我目前正在从事一个与tstamp相同的项目,并且效果很好。您可以检查TCA是否正确装入吗?您可以在后端的“系统”>“配置”下,然后在顶部选择框中选择“ $ GLOBALS ['TCA']”。

与此问题无关,您只需在TCA配置中使用'type' => 'passthrough'即可创建crdate。仅当用户可以为字段输入数据时,才需要sizeeval