我想构建一个 BE 扩展,它从另一个扩展读取存储库,并将数据作为 CSV/XSL/XSLX 交付,而不将其保存在服务器上。例如,在带有修改标题的空白窗口中输出数据。
BE AJAX 请求被正确触发
$TYPO3_CONF_VARS['BE']['AJAX']['tx_myext::ajaxID'] = 'filename:object->method';
如果从后端调用存储库也可以正常工作。
public function ajaxAction() {
...
$this->extRepository =& t3lib_div::makeInstance('Tx_MySecondExt_Domain_Repository_DataRepository');
...
}
但是当从domain.tld/typo3/ajax.php?ajaxID=tx_myext::ajaxID
它调用时,如果我直接通过 AJAX使用方法Tx_MySecondExt_Domain_Repository_DataRepository
调用第二个存储库的存储库,也找不到。findAll()
它只返回 NULL。
手动设置 QuerySettings 时也是如此
public function findAllexport() {
$query = $this->createQuery();
$query->getQuerySettings()->setRespectStoragePage(FALSE);
return $query->execute();
}
仅供参考,它在 4.5 上
编辑:
使用 ObjectManager 调用存储库也不起作用
$objectManager = t3lib_div::makeInstance('Tx_Extbase_Object_ObjectManager');
$this->extRepository = $objectManager->get('Tx_MySecondExt_Domain_Repository_DataRepository');