當我研究Zend Framework 2
的框架應用程序時,我想在頁面右上角添加一個標籤以顯示已登錄的UserName
。但是,我很困惑在layout.pthml
中定義的導航欄的代碼,控制器如何與layout.phtml
通信來修改它?Zend Framework 2:修改控制器中的layout.pthml的詳細信息
在此先感謝!
此外,當用戶未使用助手登錄時,我想要一個登錄表單右上角的頁面。但我不知道如何使用助手添加表單,我應該怎麼做?
當我研究Zend Framework 2
的框架應用程序時,我想在頁面右上角添加一個標籤以顯示已登錄的UserName
。但是,我很困惑在layout.pthml
中定義的導航欄的代碼,控制器如何與layout.phtml
通信來修改它?Zend Framework 2:修改控制器中的layout.pthml的詳細信息
在此先感謝!
此外,當用戶未使用助手登錄時,我想要一個登錄表單右上角的頁面。但我不知道如何使用助手添加表單,我應該怎麼做?
從控制器,你可以使用一個叫做「佈局」控制器插件設置一個變量:
然後在layout.phtml你應該能夠做到:
<?php echo $this->username; ?>
如果您看看Zend\Mvc\Controller\Plugin\Layout
,你會看到沒有參數的__invoke
方法將返回ViewModel
的實例,因此它可以工作。
如果你想將它定義模塊範圍內,您Module.php
public function onBootstrap(MvcEvent $e)
{
....
$e->getViewModel()->setVariable('username', 'some_value');
}
,並在您layout.phtml
echo $layout->username;
在module.php u能做到這一點
public function onBootstrap(MvcEvent $e)
{
....
$e->getViewModel()->setVariable('username', $username);
}
而在你的佈局中你可以做
echo $this->layout()->username;
同時檢查你是否使用過MvcEvent類。
爲什麼不用會話變量來保存用戶名? –
我想「顯示」用戶名 – zc1415926
當然,將用戶名推入控制器的會話中,然後在佈局中使用該值。 –