在我的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)
答案 0 :(得分:1)
我目前正在从事一个与tstamp相同的项目,并且效果很好。您可以检查TCA是否正确装入吗?您可以在后端的“系统”>“配置”下,然后在顶部选择框中选择“ $ GLOBALS ['TCA']”。
与此问题无关,您只需在TCA配置中使用'type' => 'passthrough'
即可创建crdate。仅当用户可以为字段输入数据时,才需要size
和eval
。