在 hook processDatamap_afterDatabaseOperations 中获取新记录的 uid
Get uid of new record in hook processDatamap_afterDatabaseOperations
当创建新的数据库记录时,TYPO3 会为其分配一个临时 UID,如下所示:NEW56fe740dd5a455.64167468
。记录在插入数据库时获得其真实的 UID。
在上面的钩子中,记录已经被插入到数据库中,所以它被分配了一个数字uid。如何从给定的临时 UID 获取该 uid?
好的,找到了。 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
}
当创建新的数据库记录时,TYPO3 会为其分配一个临时 UID,如下所示:NEW56fe740dd5a455.64167468
。记录在插入数据库时获得其真实的 UID。
在上面的钩子中,记录已经被插入到数据库中,所以它被分配了一个数字uid。如何从给定的临时 UID 获取该 uid?
好的,找到了。 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
}