我想知道Zend视图变量是否在我的视图助手类中可用而不直接作为参数传递
感谢
卢卡
答案 0 :(得分:6)
由于所有视图助手都引用了$view
属性中的视图,答案是肯定的。
辅助方面您不知道哪些属性可用。最好在调用或构造时将任何必需的属性传递给助手。
答案 1 :(得分:1)
你可以在视图帮助器中访问$view
表单,我将给出一个例子:
在下面的示例中,您可以设置并获取视图变量
<?php
class App_View_Helper_Job extends Zend_View_Helper_Abstract {
public function setView(Zend_View_Interface $view) {
$this->view = $view;
}
public function job() {
$this->view->var1 = "testing var1 ";
$this->view->var2 = $this->view->var1;
}
}
答案 2 :(得分:1)
你应该知道一件事:
view helper的视图实例是在helper实例化上设置的实例。它在视图克隆时没有更新。因此,如果从部分调用,您无法确定您正在使用哪一个。
答案 3 :(得分:0)
我发现当我在注册表中设置视图实例并从帮助器获取它时,视图变量保持不变。这是我在社交引擎项目中使用的代码片段
$view = Zend_Registry::get('Zend_View');
/*
* Check data available and set it to local variable
*/
if(isset($view->localeTranslations[$key]))
{
$translate = $view->localeTranslations[$key];
}