2017-05-18 50 views
0

我在我的控制了這一點:TYPO3的findAll返回空

/** 
* shopUsrMasterdataRepository 
* 
* @var 

\TYPO3\BackendcustomerExtension\Domain\Repository\ShopUsrMasterdataRepository 
* @inject 
*/ 
protected $shopUsrMasterdataRepository; 

    $user = $this->shopUsrMasterdataRepository->findAll(); 

返回空或空......但在數據庫中有600個ABOT條目。

可能是什麼問題?

使用TYPO3 31年2月6日

感謝

+3

檢查,如果你有plugin.tx_yourext.persistence.storagePid集。否則,您的查詢將使用WHERE ... AND pid = 0執行,如果您的所有條目都存儲在根頁面uid = 0中,那麼它將僅適用於此功能。 – jokumer

+0

我怎樣才能找出正確的存儲pid? ... '$ user = $ this-> shopUsrMasterdataRepository-> findByEmail($ fe_user) - > getFirst();'這個返回值也爲空 – Felix

+0

請參閱下面的內容,檢查TypoScript +查看您的數據庫哪些值設置爲您的ShopUsrMasterdata表中的pid – jokumer

回答

4

通過Typo腳本

plugin.tx_myext { 
    persistence { 
     storagePid = xxx 
    } 
} 

設置一個PID(其中記錄的位置)或禁用對您的控制器,例如PID的要求:

/** @var \TYPO3\CMS\Extbase\Persistence\Generic\Typo3QuerySettings $querySettings */ 
$querySettings = $this->objectManager->get('TYPO3\CMS\Extbase\Persistence\Generic\Typo3QuerySettings'); 
$querySettings->setRespectStoragePage(false); 
$this->myRepository->setDefaultQuerySettings($querySettings); 
+0

Storeage pid未在擴展的輸入框中設置。我在哪裏disae它?在儲存庫? – Felix

+0

我在控制器中添加了代碼。但清除緩存後沒有任何變化 – Felix

+0

我得到了內部服務器錯誤 – Felix

3

在幾乎所有情況下,這是由於設置了錯誤的storagePageUid在Extbase的持久性配置中,在適用於您的擴展或後端模塊的範圍內,無論您正在構建哪個。

其他可能的原因可以是記錄類型的使用(請參閱Extbase附帶的FrontendUser域模型)。如果您的域名模式擴展或使用fe_user,那麼這些考慮因素也適用於您的案例。此外,如果您已在適用於您的表格的TCA上聲明enableFields,則會遵守這些規定。如果你的表支持語言,那麼sys_language_uid也會生效。最後:如果您宣佈hiddendelete字段,這些也將被尊重。

如果您的使用要求的情況下,你的TCA包含這樣enableFields但插件/模塊構建必須不尊重他們,你的選擇是覆蓋createQuery()上庫到QuerySettings和力respectEnableFields或他人操縱爲FALSE。

編輯:找到解決方案,缺少類型映射TS:

config.tx_extbase.persistence.classes { 
    Vendor\ExtKey\Domain\M‌​odel\Record.mapping { 
     ​recordType = Tx_ExtKey_Domain_Model_Record` 
    } 
} 
+0

Yesterdy它像上面一樣完美地工作......從那以後沒有任何變化 – Felix

+0

所選的存儲頁面可以從上面的TS繼承,或者可以在每個插件實例中定義。我非常懷疑什麼都沒有改變 - 但我認爲接下來的挑戰是確定*改變了什麼*) –

+0

可能會在typo3版本6.2.4和6.2.31之間出現問題?在6.2.4上工作,在6.2.31上沒有 – Felix

相關問題