cakephp从帮助程序中访问视图属性/变量

时间:2010-08-19 19:33:56

标签: php cakephp views helpers

是否有合理的方法来访问视图属性“passedArgs”(或任何类似的)

/* view */
$this->passedArgs

来自助手?

我很乐意自定义帮助程序的_construct()或自定义app_helper ...但我不想在每个视图或用法时将$this->passedArgs传递给帮助程序。< / p>

3 个答案:

答案 0 :(得分:29)

Cake 2.x和3.x

您可以在_View对象中查找变量:

$this->_View->viewVars['foo'];

Cake 1.x

如果从帮助程序中获取当前视图对象,则应该能够访问其passArgs。

class SomeHelper extends AppHelper {
  function __construct($settings = array()){
    $this->passedArgs = ClassRegistry::getObject('view')->passedArgs;
  }
}

Cake 1.2.x

如果从帮助程序中获取当前视图对象,则应该能够访问其viewVars。

class SomeHelper extends AppHelper {
  function __construct($settings = array()){
    $this->viewVars = ClassRegistry::getObject('view')->viewVars;
  }
}

享受, 尼克

答案 1 :(得分:1)

您是否尝试过从AppController设置视图的值?

class AppController extends Controller {
 function beforeFilter() {
  // other stuff
  $this->set( 'passed_args', $this->params['pass'] );
 }
}

答案 2 :(得分:0)

蛋糕3:

$this->getView()->get('my_var');