获取钩子processDatamap_afterDatabaseOperations中的新记录的uid

时间:2016-04-01 13:21:57

标签: typo3 typo3-6.2.x

创建新数据库记录时,TYPO3会为它们分配一个临时UID,如下所示:NEW56fe740dd5a455.64167468。当记录插入数据库时​​,记录会获得真正的UID。

在上面的钩子中,记录已经插入到数据库中,因此它已分配了一个数字uid。如何从给定的临时UID中获取该uid?

1 个答案:

答案 0 :(得分:10)

好的,找到了。 hook-method的第四个参数是datahandler对象,它有一个属性substNEWwithIDs,一个将临时UID映射到真实UID的关联数组。

可以像这样使用它:

public function processDatamap_afterDatabaseOperations($action, $table, $uid, $datahandler)
{
    if (GeneralUtility::isFirstPartOfStr($uid, 'NEW')) {
        $uid = $datahandler->substNEWwithIDs[$uid];
    }

    // Do something with the UID
}