Mit folgender Funktion kann für Seiten der zugehörige Page slug mittels TYPO3 Funktionen ermittelt und gesetzt werden.
public static function setPageSlug($uid) { $fieldConfig = $GLOBALS['TCA']['pages']['columns']['slug']['config']; $slugHelper = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Core\DataHandling\SlugHelper::class, 'pages', 'slug', $fieldConfig); $connection = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Core\Database\ConnectionPool::class)->getConnectionForTable('pages'); $queryBuilder = $connection->createQueryBuilder(); $queryBuilder->getRestrictions()->removeAll()->add(\TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Core\Database\Query\Restriction\DeletedRestriction::class)); $statement = $queryBuilder->select('*')->from('pages')->where( $queryBuilder->expr()->eq('uid', $uid) )->execute(); $record = $statement->fetch(); $slug = $slugHelper->generate($record, $record['pid']); // Update $queryBuilder = $connection->createQueryBuilder(); $queryBuilder->update('pages')->where( $queryBuilder->expr()->eq('uid', $uid) )->set('slug', $slug)->execute(); return $slug; }