6

当我研究的骨架应用程序时Zend Framework 2,我想在页面的右上角添加一个标签来显示UserName谁已经登录。但是,我对定义的导航栏的代码感到困惑,layout.pthml控制器如何与layout.phtml修改它?

提前致谢!

此外,当用户未使用助手登录时,我想要页面右上角的登录表单。但我不知道如何使用助手添加表单,我该怎么办?

4

3 回答 3

7

在控制器中,您可以使用名为“Layout”的控制器插件来设置变量:

$this->layout()->username = “some value”;

然后在 layout.phtml 你应该能够做到:

<?php echo $this->username; ?>

如果您看一下,Zend\Mvc\Controller\Plugin\Layout您会发现__invoke不带参数的方法将返回 的实例ViewModel,因此这是有效的。

于 2012-09-24T14:18:22.537 回答
1

如果要在模块范围内定义它,请在 Module.php 上

public function onBootstrap(MvcEvent $e)
{
  ....
  $e->getViewModel()->setVariable('username', 'some_value');
}

在你的 layout.phtml 上

echo $layout->username;
于 2012-12-21T09:16:39.283 回答
0

在 module.php 你可以做到这一点

public function onBootstrap(MvcEvent $e)
{
  ....
  $e->getViewModel()->setVariable('username', $username);
}

在你的布局中你可以做

echo $this->layout()->username;

还要检查你是否使用过 MvcEvent 类。

于 2016-02-09T19:38:44.230 回答