2013-03-22 2 views
1

ViewModel에 기본 변수를 추가하는 "Zend"방법이란 무엇입니까? Zend2 ViewModel에 기본 변수 추가

현재 내가 가진 :

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

그러나 나는 항상 뷰 모델 배열에 몇 가지 변수를 추가하고 싶습니다. 시간 및 날짜와 마찬가지로 또는 메뉴에 대한 카테고리. OO 방식으로 보이는 ViewModel을 확장하려고 생각했지만 젠드는 항상 다른 방식으로 작업합니다 ...

+0

을 당신은 아마 것 렌더링 메뉴와 같은 것들을 위해 ViewHelper를 사용하고 싶습니다. 여기를보십시오 : http://framework.zend.com/manual/2.0/en/modules/zend.view.helpers.advanced-usage.html. –

답변

0

당신은 거기에 몇 가지 추가 기능을 원한다면 당신은 항상 뷰 모델을 확장 할 수 ... 컨트롤러에 이제

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(); 
} 
+0

이것은 내가 생각하고있는 방식입니다. 그러나 이것이 "Zend"방식입니까? –

+0

ZF2를 사용하여 여러 가지 방법으로 여러 가지 방법을 사용할 수 있습니다. 좋은 방법이든 좋을지는 모르지만 특정 방식으로 개발하는 것이 좋습니다. – Andrew

0

하나의 방법은 시간, 날짜 등으로 채워진 ViewModel을 반환하는 컨트롤러의 메서드를 사용하는 것일 수 있습니다. Action에서 반환 된 모델에 addVariables()를 추가합니다.

그러나 더 나은 방법은 보기 도우미을 응용 프로그램 전체의 모든보기/레이아웃에서 사용할 수 있으므로 더 나은 방법입니다.

관련 문제