2017-02-21 1 views
0

TYPO3 7.6.15のFlexForm UserFuncでfindAllで空の結果が得られました。 storagePidが設定されており、FrontendでfindAllですべての結果を取得しています。ここでTYPO3 7.6.15のFlexForm UserFuncでfindAllを使用した空の結果

は私のUSERFUNC-方法である:

public function getBuldingOptions(&$config) 
{ 
    /** @var ObjectManager $om */ 
    $om = GeneralUtility::makeInstance(ObjectManager::class); 

    /** @var BuildingRepository $repo */ 
    $repo = $om->get(BuildingRepository::class); 
    $building = $repo->findAll(); 

    DebuggerUtility::var_dump($building, '$building'); // Output: TYPO3\CMS\Extbase\Persistence\Generic\QueryResultprototypeobject (empty) 

    // add empty value option 
    $config['items'][] = [LocalizationUtility::translate('BuildingUserFunc.building.emtpyValue', $this->extName), 0]; 

    /** @var Building $entity */ 
    foreach ($building as $entity) { 
     $config['items'][] = [$entity->getName(), $entity->getUid()]; 
    } 

    return $config; 
} 

まだ間違ったことでできますか?誰かアイデア?

答えて

0

私は問題と適切な解決策を見つけました。

設定されたstoragePidがプラグイン構成スコープで機能しないという問題があります。 storagePidは手動で解決する必要があります。

私はそのためのサービスを書き、EXTに追加しました:xm_tools:

https://github.com/xima-media/xm_tools/blob/rc-1.0.0/Classes/Extensionmanager/ExtensionUtility.php

そして、私のリポジトリinitializeObject方法があります:

use TYPO3\CMS\Extbase\Persistence\Generic\Typo3QuerySettings; 
use TYPO3\CMS\Extbase\Persistence\Repository; 
use Xima\XmTools\Extensionmanager\ExtensionUtility; 

class BaseRepository extends Repository 
{ 

    private $extName = 'my_extension_key'; 

    public function initializeObject() 
    { 
     $pluginSetup = ExtensionUtility::getTypoScriptPluginSetup($this->extName); 

     /** @var Typo3QuerySettings $querySettings */ 
     $querySettings = $this->objectManager->get(Typo3QuerySettings::class); 
     $querySettings->setStoragePageIds(array_merge($querySettings->getStoragePageIds(), explode(',', $pluginSetup['persistence']['storagePid']))); 
     $this->setDefaultQuerySettings($querySettings); 
    } 

} 
関連する問題