0

나는 내가 호출 가능한로 설정 한 $this->getTypes();젠드 프레임 워크 2의 폼에서 뷰 도우미를 사용하려면 어떻게해야합니까?

라는 배열 반환하는보기 도우미가 :

'view_helpers' => array(
    'invokables' => array(
     'getTypes' => 'Account\View\Helper\GetTypes', 
    ), 
), 

을 나는하지만, 형태, 배열을 볼 수있는보기에서 에코 경우 실패합니다.

$this->add(array(
    'name'  => 'type_id', 
    'type'  => 'Zend\Form\Element\Select', 
    'attributes' => array(
     'required' => 'required', 
    ), 
    'options' => array(
     'label'   => 'Type *', 
     'value_options' => $this->getTypes(), 
    ), 
)); 

어떤 아이디어 : 내가 좋아하는 뭔가를하고 싶은

?

답변

0

짧은 대답은 다음과 같습니다 당신은 매체 대답은하지

을 수행으로 DB-값을 얻을 수 있도록 Zend\Form\Element\Select 당신이 당신의 양식으로 DB-/서비스 레이어를 삽입해야합니다.

내 대답은 : 내 블로그 게시물 Zend\Form\Element\Select and Database Values

+0

로 작성되었습니다. 만약 내가 더 많은 형태로'$ this-> getTypes()'를 사용할 필요가 있다면, 이것을하기위한 어떤 종류의 방법이 있어야한다. 그럼에도 불구하고 고마워요 – Patrioticcow

+0

OOP 방식으로 생각하십시오. Form을 채우려면 ViewHelpers 작업이 아니어야합니다. 또한 Population을위한 데이터를 얻는 것이 일이 아니어야합니다. 그것은 서비스 업무입니다. 그러므로 귀하의 양식은 서비스에 의존하므로 주입해야합니다. 저기와 그 주위에 다른 방법은 없습니다. P – Sam

+0

이 논리를 유지할'Application \ Model' 네임 스페이스에 모델 클래스를 생성하게됩니다. 그런 다음 공장을 사용하여 SM을 해당 모델에 주입하고 논리를 수행했습니다. 그런 다음 모델을 보유하고있는 팩토리를 폼에 삽입했습니다. 필자는 Service 클래스가 데이터베이스와 관련된 로직 (기본 설정)을 유지하도록합니다. – Patrioticcow