2014-12-24 48 views
0

如何獲得我所有前端用戶組的列表?獲取TYPO3 FE_User組列表

我已經試過這樣:

/** 
* feUserGroupRepository 
* 
* @var \TYPO3\CMS\Extbase\Domain\Repository\FrontendUserGroupRepository 
* @inject 
*/ 
protected $feUserGroupRepository = NULL;` 

,然後這樣的:

$usergroups = $this->feUserGroupRepository->findAll();

我得到這個錯誤:調用一個成員函數findAll()一個非對象

我試過這種方式:

/** 
* @var \TYPO3\CMS\Extbase\Domain\Repository\FrontendUserGroupRepository $feUserGroupRepository 
*/ 
    $feUserGroupRepository = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Domain\\Repository\\FrontendUserGroupRepository'); 
    $allUsers = $feUserGroupRepository->findAll();` 

不到風度在所有的工作我已經得到了這個錯誤消息

PHP開捕致命錯誤:參數1傳遞給

TYPO3\CMS\Extbase\Persistence\Repository::__construct() must implement interface 
TYPO3\CMS\Extbase\Object\ObjectManagerInterface, none given, called in 
C:\xampp\htdocs\typo3\typo3\sysext\core\Classes\Utility\GeneralUtility.php on 
line 4431 and 
defined in C:\xampp\htdocs\typo3\typo3\sysext\extbase\Classes\Persistence\Repository.php 

我怎樣才能得到所有feusergroups列表?

Rcord類型? enter image description here

+0

請首先改進您的格式。 – lorenz

+0

已經完成... – Felix

回答

0

該錯誤表明依賴注入不起作用。請確保在執行緩存在數據庫中的更改後刷新系統緩存,這是更改類名稱或需要重建依賴關係的更改的情況。

如果您正在開發環境中運行TYPO3,則可以在安裝工具(「重要操作」)中刷新系統緩存或直接在後端刷新系統緩存。 「刷新常規高速緩存」不會(!)刷新基於數據庫的系統高速緩存。

根據您正在運行的TYPO3版本,您需要將Frontend用戶組的記錄類型(列「tx_extbase_type」)設置爲FrontendUserGroup。

不鼓勵使用makeInstance來生成Repository的實例。應儘可能使用依賴注入(在這種情況下),或者在不可能的情況下使用ObjectManager。

+0

是的,那麼這應該足夠嗎? /** * feUserGroupRepository * * @var \ TYPO3 \ CMS \ Extbase \域\庫\ FrontendUserGroupRepository * @Inject */ 保護$ feUserGroupRepository = NULL;' 然後將此: $用戶組= $ this-> feUserGroupRepository-> findAll(); 我試過它在一個乾淨的系統上,但根本不工作... 沒有得到任何組 – Felix

+0

但是你不會再有錯誤了嗎?所以你的問題是沒有設置記錄類型,請在我的答案中查看提示。 – lorenz

+0

我已更新我的問題並添加了屏幕截圖。我已經在昨天創下了紀錄,沒有任何改變。 – Felix