将默认变量添加到ViewModel的“Zend”方法是什么。
目前我有:
return new ViewModel(array('form' => new CreateUserForm));
但我想总是在ViewModel数组中添加一些变量。喜欢时间和日期说,或菜单的类别。我正在考虑扩展ViewModel,因为它似乎是OO方式,但Zend总是以不同的方式做事......
答案 0 :(得分:0)
一种方法可能是在控制器中使用一个方法返回填充了时间,日期等的ViewModel,然后将addVariables()添加到Action中返回的模型中。
但是,更好的方法是使用查看助手,因为它们将在整个应用程序的每个视图/布局中可用。
答案 1 :(得分:0)
如果你想要一些额外的功能,你总是可以扩展ViewModel ......
class MyViewModel extends ViewModel
{
/**
* Default Variables to set
*/
protected $_defaultValues = array(
'test' => 'bob'
);
/**
* Constructor
*
* @param null|array|Traversable $variables
* @param array|Traversable $options
*/
public function __construct($variables = null, $options = null)
{
//$variables = array_merge($this->_defaultValues, $variables);
$this->setVariables($this->_defaultValues);
parent::__construct($variables, $options)
}
}
现在在您的控制器中,只需使用返回您的新视图模型:
/**
* Some Controller Action
*/
function myAction()
{
return new MyViewModel();
}