Viewhelperを使用してFEユーザーのuidを取得してレンダリングするにはどうすればよいですか?以下はコントローラ経由で動作していますが、Viewhelperでは動作しません。違いはどこですか?私は7.6.11を使用しています。最後に、FEユーザのユーザIDとユーザグループのユーザIDを持っていて、さらに拡張のHTMLや一般的な部分で使用したいと思います...TYPO3 - Viewhelper経由でFE UIDを取得する方法
/typo3conf/extに/拡張子/クラス/ ViewHelpers/UserViewHelper.php
<?php
namespace Vendor\Extension\ViewHelpers;
class UserViewHelper extends \TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelper {
/**
* User Repository
*
* @var \TYPO3\CMS\Extbase\Domain\Repository\FrontendUserRepository
* @inject
*/
protected $userRepository;
/**
* @var \TYPO3\CMS\Extbase\Domain\Repository\FrontendUserGroupRepository
* @inject
*/
protected $frontendUserGroupRepository;
public function render() {
$userIDTest = $this->userRepository->findByUid($GLOBALS['TSFE']->fe_user->user['uid']);
$this->view->assign('userIDTest', $userIDTest);
}
}
するlist.html
<f:layout name="Default" />
<f:section name="main">
{userIDTest.uid}
</f:section>
のDimitryによって示唆されるように私は
$this->view->assign('userIDTest', $userIDTest);
を置き換えます
return $userIDTest;
とするlist.htmlのある
私はこれがあります。
{namespace custom=Vendor\Extension\ViewHelpers}
<f:layout name="Default" />
<f:section name="main">
<f:alias map="{user: '{custom:user()}'}">
{user.uid} {user.username}
</f:alias>
</f:section>
...と、すべてのキャッシュをクリア(FE/BE /インストール)とtypo3tempを削除した後...今その作業を!
どのTYPO3バージョンですか? 7.x以降では、ViewHelpersがコンパイルされ、結果として「レンダリング」メソッドが1回だけ呼び出されます(コンパイル用に)。その後、 "renderStatic"(静的メソッド)だけが呼び出されます。あなたは毎回呼び出される "renderStatic"を上書きすることができます。もちろん、リポジトリはそれほど簡単には利用できません。 – Jost
こんにちはJost ...私は上記を更新しました。私は7.6.11を使用しています。サンプルを表示できますか?あまりにも多くありますか?私の側に ... –
あなたは、単にユーザーID、または完全なユーザーオブジェクトをしたいですか?リポジトリが必要ないため、IDを使用すると簡単になります。 – Jost