作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我编写了一个 Controller 插件,它将一些变量传递到我的 View 。但在我看来,这些变量是无法访问的。
这是示例代码:
namespace Application\Controller\Plugin;
use Zend\Mvc\Controller\Plugin\AbstractPlugin;
use Zend\View\Model\ViewModel;
class Myclass extends AbstractPlugin
{
public function setup($event)
{
$view = new ViewModel();
return $view->setVariables(array(
'MyVariable' => 'VALUE' //this variable is not accessible from within view
));
}
}
有什么建议吗?
最佳答案
如果您通过以某种方式将插件逻辑附加到事件管理器来执行插件逻辑(在给定 $event
参数的情况下,您看起来就是这样),那么您可以简单地使用:
$viewModel = $event->getViewModel();
并以这种方式添加变量。
请注意,这仅适用于 MvcEvent::EVENT_DISPATCH
和 MvcEvent::EVENT_RENDER
事件类型,因为此时 Controller 操作已经创建了 ViewModel,并且你只是修改它。否则,当你的 Action Controller 触发时,你在这里所做的任何事情都将被覆盖。
关于php - 如何在 zf2 的 Controller 插件中设置 View 变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13187324/
我是一名优秀的程序员,十分优秀!