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

zer*_*isk 12 php cakephp views helpers

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

/* view */
$this->passedArgs
Run Code Online (Sandbox Code Playgroud)

从帮助者手中?

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

小智 30

Cake 2.x和3.x.

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

$this->_View->viewVars['foo'];
Run Code Online (Sandbox Code Playgroud)

蛋糕1.x.

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

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

蛋糕1.2.x

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

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

享受,尼克

  • 在CakePHP 2.x中,您可以使用以下命令从帮助程序的方法访问viewVars:`$ this - > _ View-> viewVars ['var']` (11认同)
  • 对我来说,我需要从控制器中获取视图变量,所以它是:`$ this-> viewVars = ClassRegistry :: getObject('view') - > viewVars;`这是一个数组,其中的键是在渲染期间在视图中提取和使用的变量的名称. (5认同)