2016-04-01 9 views
3

新しいデータベースレコードを作成するとき、TYPO3は一時的なUIDを割り当てます(NEW56fe740dd5a455.64167468)。レコードは、データベースに挿入されるときにその実際のUIDを取得します。フックで新しいレコードのuidを取得するprocessDatamap_afterDatabaseOperations

上記のフックでは、レコードはすでにデータベースに挿入されているため、数値のUIDが割り当てられています。特定の一時的なUIDからそのuidを取得するにはどうすればよいですか?

答えて

5

[OK]を見つけました。フックメソッドの4番目のパラメータは、データハンドラオブジェクトです。このオブジェクトは、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 
} 
関連する問題