uid がわかっているフロント エンド ユーザーのユーザー名を読み取ろうとしています。コントローラーの showAction メソッドでこれを試しました:
$objectManger = t3lib_div::makeInstance('Tx_Extbase_Object_ObjectManager');
// get repository
$repository = $objectManger->get('Tx_Extbase_Domain_Repository_FrontendUserRepository ');
$newObject = $repository->findByUid($coupon->getCreator()); //this is the uid of whoever was loggin in
print_r($newObject);
echo $newObject->getUsername(); die;
しかし、そのコードを実行すると、次のようになります。
エラーが発生しました。「Tx_Extbase_Domain_Repository_FrontendUserRepository」は有効なキャッシュ エントリ識別子ではありません。
$repository が空であることが判明した場合、fe_user データを取得するにはどうすればよいですか?
私はextbaseでtypo3 v4.5を使用しています。
ありがとう
完全な回答を表示するように更新します。これは、機能したコード (私の CouponController に入っています) です (および、言及されているタイポスクリプト):
/**
* @var Tx_Extbase_Domain_Repository_FrontendUserRepository
*/
protected $userRepository;
/**
* Inject the user repository
* @param Tx_Extbase_Domain_Repository_FrontendUserRepository $userRepository
* @return void */
public function injectFrontendUserRepository(Tx_Extbase_Domain_Repository_FrontendUserRepository $userRepository) {
$this->userRepository = $userRepository;
}
public function showAction(Tx_Coupons_Domain_Model_Coupon $coupon) {
$userRepository = $this->objectManager->get("Tx_Extbase_Domain_Repository_FrontendUserRepository");
$newObject = $userRepository->findByUid($coupon->getCreator());
$this->view->assign('coupon', $coupon);
$this->view->assign('creatorname', $newObject->getUsername() );
}