將默認變量添加到ViewModel的「Zend」方式是什麼?將默認變量添加到Zend2 ViewModel
目前我有:
return new ViewModel(array('form' => new CreateUserForm));
但我想總有一些變量添加到視圖模型陣列。就像時間和日期說的一樣,或者菜單的類別。我正在考慮擴展ViewModel,因爲這看起來像OO的方式,但Zend總是以不同的方式做...
將默認變量添加到ViewModel的「Zend」方式是什麼?將默認變量添加到Zend2 ViewModel
目前我有:
return new ViewModel(array('form' => new CreateUserForm));
但我想總有一些變量添加到視圖模型陣列。就像時間和日期說的一樣,或者菜單的類別。我正在考慮擴展ViewModel,因爲這看起來像OO的方式,但Zend總是以不同的方式做...
如果你想在有一些額外的功能,你可以隨時擴展視圖模型...
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();
}
這就是我的想法。但這是「Zend」嗎? – 2013-03-22 16:23:17
有許多方法可以使用ZF2來做事情,它不會強迫你使用某種開發方式,儘管這可以是好的也可以是不好的:) – Andrew 2013-03-22 16:58:11
一種方法可能是在控制器中有一個方法,它返回ViewModel填充時間,日期等然後將AddVariables()添加到Action中返回的模型中。
但是,更好的方法是使用查看幫助程序,因爲它們將在整個應用程序的每個視圖/佈局中可用。
你可能會想要將ViewHelper用於渲染菜單等內容。看看這裏:http://framework.zend.com/manual/2.0/en/modules/zend.view.helpers.advanced-usage.html。 – 2013-03-22 13:11:08