我現在在flow3中有一些實體,倉庫和控制器,它們工作得很好。如果有人需要全局流體變量(例如,以默認佈局打印的用戶名),他必須定義並使用全局控制器。Flow3 - 如何初始化和使用全局控制器?
如何創建和使用此類控制器?
我現在在flow3中有一些實體,倉庫和控制器,它們工作得很好。如果有人需要全局流體變量(例如,以默認佈局打印的用戶名),他必須定義並使用全局控制器。Flow3 - 如何初始化和使用全局控制器?
如何創建和使用此類控制器?
控制器是類,所以你可以擴展它們並創建抽象類。
讓我們假設你有LoveController
包My.Relationships
包。 您可以創建一些單獨的基本包,即My.Life
和AbstractLifeController
(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
爲什麼你需要一個全球性的控制器來顯示用戶名?你能提供進一步的細節嗎?實際上,您的模型中的現場用戶將映射到用戶表。從那裏你可以訪問所有的用戶和他們的名字。 – Wipster
是的,這是正確的,但你也需要在每一個控制器中獲得用戶。我不想爲每一個控制器都這樣做。所以我需要一個總是被調用的控制器。 – Pete
我的錯!沒有看到流標籤。刪除了我的答案。 – Wipster