获取前端用户组列表
Get list of Frontend Usergroups
我试图获取包含所有前端用户组的列表
我试过这个:
/**
* Protected Variable FrontendUserGroupRepository wird mit NULL initialisiert.
*
* @var \ReRe\Rere\Domain\Repository\FrontendUserGroupRepository
* @inject
*/
protected $FrontendUserGroupRepository = NULL;
然后这个
$feUserGroups = $this->frontendUserGroupRepository->findAll();
但是列表总是空的,即使数据库中有 2 个用户组。
更新...我尝试将其作为存储库
class FrontendUserGroupRepository extends \Typo3\CMS\Extbase\Domain\Repository\FrontendUserGroupRepository {
// Example for repository wide settings
public function initializeObject() {
/** @var $defaultQuerySettings Tx_Extbase_Persistence_Typo3QuerySettings */
$defaultQuerySettings = $this->objectManager->get('Tx_Extbase_Persistence_Typo3QuerySettings');
// go for $defaultQuerySettings = $this->createQuery()->getQuerySettings(); if you want to make use of the TS persistence.storagePid with defaultQuerySettings(), see #51529 for details
// don't add the pid constraint
$defaultQuerySettings->setRespectStoragePage(FALSE);
// don't add fields from enablecolumns constraint
$defaultQuerySettings->setRespectEnableFields(FALSE);
// don't add sys_language_uid constraint
$defaultQuerySettings->setRespectSysLanguage(FALSE);
$this->setDefaultQuerySettings($defaultQuerySettings);
}
}
但是我得到了这个错误:
Could not analyse class:Typo3\CMS\Extbase\Domain\Repository\FEUserGroupsRepositry maybe not loaded or no autoloader
我添加了新的依赖注入并重新安装了模块...
默认情况下,每个 Extbase 存储库的标志 respectStoragePage
设置为 true,这意味着用户组需要放置在配置为 默认存储 PID 的页面上在你的 exts 常量中,无论如何我看到你可能根本不包括它。
在这种情况下,您需要创建自己的存储库来扩展 FrontendUserGroupRepository,然后在不考虑存储的情况下对其进行初始化。
在official docs中有描述。
编辑:如果您在扩展构建器中扩展一些 model/repo 会自动将您的回购限制为您类型的对象,即通过添加 TS 映射:
recordType = Tx_Rere_FrontendUserGroup
因此,如果您想访问扩展模型的所有记录,只需从 ext_typoscript_setup.txt
中完全删除 recordType
(不要忘记清除系统缓存)。
我试图获取包含所有前端用户组的列表
我试过这个:
/**
* Protected Variable FrontendUserGroupRepository wird mit NULL initialisiert.
*
* @var \ReRe\Rere\Domain\Repository\FrontendUserGroupRepository
* @inject
*/
protected $FrontendUserGroupRepository = NULL;
然后这个
$feUserGroups = $this->frontendUserGroupRepository->findAll();
但是列表总是空的,即使数据库中有 2 个用户组。
更新...我尝试将其作为存储库
class FrontendUserGroupRepository extends \Typo3\CMS\Extbase\Domain\Repository\FrontendUserGroupRepository {
// Example for repository wide settings
public function initializeObject() {
/** @var $defaultQuerySettings Tx_Extbase_Persistence_Typo3QuerySettings */
$defaultQuerySettings = $this->objectManager->get('Tx_Extbase_Persistence_Typo3QuerySettings');
// go for $defaultQuerySettings = $this->createQuery()->getQuerySettings(); if you want to make use of the TS persistence.storagePid with defaultQuerySettings(), see #51529 for details
// don't add the pid constraint
$defaultQuerySettings->setRespectStoragePage(FALSE);
// don't add fields from enablecolumns constraint
$defaultQuerySettings->setRespectEnableFields(FALSE);
// don't add sys_language_uid constraint
$defaultQuerySettings->setRespectSysLanguage(FALSE);
$this->setDefaultQuerySettings($defaultQuerySettings);
}
}
但是我得到了这个错误:
Could not analyse class:Typo3\CMS\Extbase\Domain\Repository\FEUserGroupsRepositry maybe not loaded or no autoloader
我添加了新的依赖注入并重新安装了模块...
默认情况下,每个 Extbase 存储库的标志 respectStoragePage
设置为 true,这意味着用户组需要放置在配置为 默认存储 PID 的页面上在你的 exts 常量中,无论如何我看到你可能根本不包括它。
在这种情况下,您需要创建自己的存储库来扩展 FrontendUserGroupRepository,然后在不考虑存储的情况下对其进行初始化。
在official docs中有描述。
编辑:如果您在扩展构建器中扩展一些 model/repo 会自动将您的回购限制为您类型的对象,即通过添加 TS 映射:
recordType = Tx_Rere_FrontendUserGroup
因此,如果您想访问扩展模型的所有记录,只需从 ext_typoscript_setup.txt
中完全删除 recordType
(不要忘记清除系统缓存)。