在Module.php中我有一些代码(简化版):
namespace Application;
use Zend\Mvc\ModuleRouteListener;
use Zend\Mvc\MvcEvent;
class Module{
public $somevariable = 'test';
public function onBootstrap( MvcEvent $e ) {
$this->somevariable = 'test2';
}
public function getValue(){
return $this->somevariable;
}
}
接下来,我想从变量获得价值"一些变量"在模板layout.phtml中。我这样做如下:
echo Application\Module::getValue();
但这不起作用。这有什么问题?
P.S。我从来没有在PHP中编写太多程序,所以也许我错过了一些东西: - (
答案 0 :(得分:1)
你可以使用
$e->getViewModel()->setVariable('somevariable', 'somethingvalue');
并在视图中:
echo $this->layout()->somevariable;
有关详细信息,请参阅此文章:http://samsonasik.wordpress.com/2012/07/27/zend-framework-2-mvcevent-layout-view-get-namespace/
答案 1 :(得分:0)
如果变量只是一个字符串,那么采用这种方法就没有多大意义。请不要在攻击性方面采取这种做法,但如果你没有太多的PHP经验(你试图调用一个非静态的静态函数),那么我想知道为什么你会开始用如此高级的框架学习PHP。
如果您仍然坚持这样做,请按照official Documentation并一遍又一遍地阅读整个快速入门。看看那里的一些Modules,看看他们是怎么做的。
首先尝试做一些简单的事情,直到你真的需要这样的功能。