【发布时间】:2011-04-01 07:57:47
【问题描述】:
是否有合理的方式来访问视图属性“passedArgs”(或任何类似的)
/* view */
$this->passedArgs
来自 Helper?
我很乐意自定义助手的 _construct() 或自定义 app_helper...但我不想在每次查看或使用时都将 $this->passedArgs 传递给助手。
【问题讨论】:
是否有合理的方式来访问视图属性“passedArgs”(或任何类似的)
/* view */
$this->passedArgs
来自 Helper?
我很乐意自定义助手的 _construct() 或自定义 app_helper...但我不想在每次查看或使用时都将 $this->passedArgs 传递给助手。
【问题讨论】:
蛋糕 3:
$this->getView()->get('my_var');
【讨论】:
蛋糕 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;
}
}
享受, 尼克
【讨论】:
$this->viewVars = ClassRegistry::getObject('view')->viewVars; 这是一个数组,其键是提取和使用的变量的名称在渲染期间的视图中。
$this->_View->viewVars['var']
您是否尝试过仅从 AppController 设置视图的值?
class AppController extends Controller {
function beforeFilter() {
// other stuff
$this->set( 'passed_args', $this->params['pass'] );
}
}
【讨论】: