1

ViewModel にデフォルト変数を追加する「Zend」の方法は何ですか。

現在私は持っています:

return new ViewModel(array('form' => new CreateUserForm));

しかし、常にいくつかの変数を ViewModel 配列に追加したいと考えています。時間と日付、またはメニューのカテゴリのように。オブジェクト指向のように見えるので、ViewModelを拡張することを考えていましたが、Zendは常に異なる方法で行います...

4

2 に答える 2

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();
}
于 2013-03-22T15:52:16.983 に答える
0

1 つの方法として、時間、日付などを入力した ViewModel を返すメソッドをコントローラーに配置し、Action で返されたモデルに addVariables() を追加することが考えられます。

ただし、ビュー ヘルパーはアプリケーション全体のすべてのビュー/レイアウトで使用できるため、ビュー ヘルパーを使用することをお勧めします。

于 2013-03-22T13:16:56.587 に答える