如果我有一个视图并希望查看特定视图的所有设置变量,我该怎么做?
答案 0 :(得分:9)
分配给Zend_View
对象的变量只是成为视图对象的公共属性。
以下是在特定视图对象中设置所有变量的几种方法。
在视图脚本中:
$viewVars = array();
foreach($this as $name => $value) {
if (substr($name, 0, 1) == '_') continue; // protected or private
$viewVars[$name] = $value;
}
// $viewVars now contains all view script variables
来自控制器中的Zend_View
对象:
$this->view->foo = 'test';
$this->view->bar = '1234';
$viewVars = get_object_vars($this->view);
// $viewVars now contains all public properties (view variables)
最后一个示例对于使用$view = new Zend_View();
答案 1 :(得分:7)
有一种更优雅的方式:$this->viewModel()->getCurrent()->getVariables();
对于嵌套的viewModel:$this->viewModel()->getCurrent()->getChildren()[0]->getVariables();
答案 2 :(得分:2)
$this->view->getVars()
或从视图内部
$this->getVars()
答案 3 :(得分:1)
就我而言,我需要从另一个视图中加载局部视图。实际上,这很容易。不必担心让变量从父视图传递到子视图,只需传递父视图对象。
<?php echo $this->partial('my-view.phtml', $this); ?>