ViewModel にデフォルト変数を追加する「Zend」の方法は何ですか。
現在私は持っています:
return new ViewModel(array('form' => new CreateUserForm));
しかし、常にいくつかの変数を ViewModel 配列に追加したいと考えています。時間と日付、またはメニューのカテゴリのように。オブジェクト指向のように見えるので、ViewModelを拡張することを考えていましたが、Zendは常に異なる方法で行います...
ViewModel にデフォルト変数を追加する「Zend」の方法は何ですか。
現在私は持っています:
return new ViewModel(array('form' => new CreateUserForm));
しかし、常にいくつかの変数を ViewModel 配列に追加したいと考えています。時間と日付、またはメニューのカテゴリのように。オブジェクト指向のように見えるので、ViewModelを拡張することを考えていましたが、Zendは常に異なる方法で行います...
そこにいくつかの追加機能が必要な場合は、いつでも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();
}
1 つの方法として、時間、日付などを入力した ViewModel を返すメソッドをコントローラーに配置し、Action で返されたモデルに addVariables() を追加することが考えられます。
ただし、ビュー ヘルパーはアプリケーション全体のすべてのビュー/レイアウトで使用できるため、ビュー ヘルパーを使用することをお勧めします。