2013-08-06 38 views
1

我現在在flow3中有一些實體,倉庫和控制器,它們工作得很好。如果有人需要全局流體變量(例如,以默認佈局打印的用戶名),他必須定義並使用全局控制器。Flow3 - 如何初始化和使用全局控制器?

如何創建和使用此類控制器?

+0

爲什麼你需要一個全球性的控制器來顯示用戶名?你能提供進一步的細節嗎?實際上,您的模型中的現場用戶將映射到用戶表。從那裏你可以訪問所有的用戶和他們的名字。 – Wipster

+0

是的,這是正確的,但你也需要在每一個控制器中獲得用戶。我不想爲每一個控制器都這樣做。所以我需要一個總是被調用的控制器。 – Pete

+0

我的錯!沒有看到流標籤。刪除了我的答案。 – Wipster

回答

2

控制器是類,所以你可以擴展它們並創建抽象類。

讓我們假設你有LoveControllerMy.Relationships包。 您可以創建一些單獨的基本包,即My.LifeAbstractLifeController(php:abstract class AbstractLifeController extends \TYPO3\Flow\Mvc\Controller\ActionController)。

現在有initialize*方法(其中*可能是Action,View,AnyAction等)。在你的情況下使用:protected initializeView(\TYPO3\Flow\Mvc\View\ViewInterface $view)在此abstarct控制器和分配存在一些變量即$view->assign('myName', $myName); ...

那麼當你LoveController extends \My\Life\Controller\AbstractLifeController,該變量{myName}將在可見的流體通過自己的行動使用的模板。的

所以不是擴展\ TYPO3 \流量\的mvc \控制器\ ActionController的爲所有的控制器,只需擴展這個抽象一個\我\生活\控制器\ AbstractLifeController