13

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

/* view */
$this->passedArgs

从助手内部?

我很乐意自定义助手的 _construct() 或自定义 app_helper ......但我不想$this->passedArgs在每次视图或使用时都传递给助手。

4

3 回答 3

30

蛋糕 2.x 和 3.x

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

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

蛋糕 1.x

如果您从助手中获取当前视图对象,您应该能够访问其传递的参数。

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

蛋糕 1.2.x

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

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

享受吧,尼克

于 2010-08-19T21:55:25.430 回答
1

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

class AppController extends Controller {
 function beforeFilter() {
  // other stuff
  $this->set( 'passed_args', $this->params['pass'] );
 }
}
于 2010-08-19T20:48:14.840 回答
1

蛋糕3:

$this->getView()->get('my_var');
于 2019-03-27T14:51:07.463 回答