2016-04-01 1 views
3

Lors de la création de nouveaux enregistrements de base de données, TYPO3 leur affecte un UID temporaire, qui ressemble à ceci: NEW56fe740dd5a455.64167468. L'enregistrement obtient son UID réel lorsqu'il est inséré dans la base de données.Obtention d'un nouvel enregistrement dans hook processDatamap_afterDatabaseOperations

Dans le crochet ci-dessus, l'enregistrement est déjà inséré dans la base de données, de sorte qu'un UID numérique lui est affecté. Comment puis-je obtenir cet UID à partir d'un UID temporaire donné?

Répondre

5

D'accord, trouvé. Le quatrième paramètre de la méthode hook est l'objet datahandler, qui a la propriété substNEWwithIDs, un tableau associatif mappant des UID temporaires aux UID réels.

On peut l'utiliser comme ceci:

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

    // Do something with the UID 
}