2017-01-24 5 views
1

ユーザー管理モジュールを作成しようとしています。私はすべてのFEユーザーを取得したいと思います。TYPO3:すべてのFEユーザーを取得

これは私のコントローラである:

$users = $this->feUserRepository->findAll(); 

$this->view->assign('users', $users); 

が、私が得るすべては空のオブジェクトです:

/** 
* @var \TYPO3\CMS\Extbase\Domain\Repository\FrontendUserRepository 
* @inject 
*/ 
protected $feUserRepository; 

は、私が使用しています。

EDIT:何らかの理由で

$this->feUserRepository->findByUId(1); 

は仕事が、findAllのを(い)いない...

答えて

1

extbaseは黙っfindByUid($uid)ためquerySettingsにrespectStoragePage設定を無効にするためですコール。

だから、あなたは2つのオプションがあります。

  1. は、プラグイン(plugin.tx_myextension.persistence.storagePid)のTypoScript設定で正しいストレージPIDを提供します。このようにして、特定のページに格納されているすべてのフロントエンドユーザーを見つけることができます。
  2. エクストラベースからリポジトリを拡張する独自のFrontendUserRepositoryを実装できますが、すべての呼び出しに対してrespectStoragePageを無効にします(この方法で、レコードが保存されているページに関係なくすべてのfrontendUserを取得できます)。ここではあなたがそれを行う方法です。

    use TYPO3\CMS\Extbase\Domain\Repository\FrontendUserRepository as ExtbaseFrontendUserRepository; 
    
    class FrontendUserRepository extends ExtbaseFrontendUserRepository 
    { 
        /** 
        * Disable respecting of a storage pid within queries globally. 
        */ 
        public function initializeObject() 
        { 
         $defaultQuerySettings = $this->objectManager->get(\TYPO3\CMS\Extbase\Persistence\Generic\Typo3QuerySettings:class); 
         $defaultQuerySettings->setRespectStoragePage(false); 
         $this->setDefaultQuerySettings($defaultQuerySettings); 
        } 
    } 
    

あなたのコントローラであなたは、あなたのFrontendUserRepositoryを注入。そして、あなたはFrontendUserモデルのために同じことを行う必要があり、あなたがあなたのモデルのためのfe_usersテーブルを使用していることをextbase後で言う:

config.tx_extbase { 
    persistence { 
     classes { 
      Vendor\MyExtension\Domain\Model\FrontendUser { 
       mapping { 
        tableName = fe_users 
       } 
      } 
     } 
    } 
} 
+0

完璧な、タンクにあなたを! – user6800816

+0

データが必要になるまでクエリが実際には実行されないため、一度だけ実行するとクエリを編集することができます。したがって、これはうまくいきます: '' $ users-> getQuery() - > getQuerySettings () - > setRespectStoragePage(false); ''です。これを行うためにリポジトリを拡張する必要はありませんが、そうするのがよりクリーンな場合もあります。 – pgampe

+0

'config' typoscriptを置くべきですか? – Pete

関連する問題