Jon*_*nas 1 typo3 extbase typo3-8.x
从特定对象获取表名的最佳方法是什么?是否有类似的东西:
$tableName = Utility::doSomeMagic($object);
Run Code Online (Sandbox Code Playgroud)
这样您就可以从Vendor \ Extkey \ Domain \ Model \ MyObject中获得tx_extkey_domain_model_myobject。
您可以使用DataMapper获取模型的表名。存储库在内部(至少间接地)使用它来告诉它们正在处理什么。您可以为自己获取DataMapper的实例并按如下方式使用它:
$className = \MyVendor\MyExt\Domain\Model\SomeModel::class;
$dataMapper = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Extbase\Persistence\Generic\Mapper\DataMapper::class);
$tableName = $dataMapper->getDataMap($className)->getTableName();
Run Code Online (Sandbox Code Playgroud)
看看在SqlDebuggerUtility从该github上存储库,它是使用DataMapper的获得QueryResult对象的表名调试SQL语句。