0

Zend Form의 뷰 스크립트 데코레이터를 사용하여 폼에 부분 추가를 시도했지만 부분 변수를 전달할 수없는 것처럼 보입니다. 여기에 내 코드입니다 :뷰 스크립트 데코레이터 변수 전달

public function setCategories($categories) { 
    $this->setDecorators(array(array('ViewScript', array(
      'viewScript' => 'partials/dtreePartial.phtml', 
      'List'=>"{$categories}", 
    )))); 
} 

내가하여보기 스크립트에 대한 옵션을 인쇄 시도 :

$form = new Content_Form_ContentForm(array("categories" => $sortedCategories)); 
$form->submit_button->setLabel("Add content"); 
$this->view->form = $form; 

는 그런 형태의 내부 내가 viewscript를 추가 : 컨트롤러에서

내가 양식을 추가 print_r($this->getDecorator('ViewScript')->getOptions());을 사용하면 Array ([viewScript] => partials/dtreePartial.phtml [List] => Array) 이됩니다. 그러나 모두 실행하면 스크립트는 목록이 존재하지 않는다는 오류를 반환합니다.

나는 뭔가를 놓치고 있다는 느낌이 들지만 나는 그것이 무엇인지 확신 할 수 없다. 어떤 조언이나 해결책을 주시면 감사하겠습니다! :)

답변

1

문제는이 라인이다 : 당신이 따옴표 안에 변수를 넣어 때문에

'List'=>"{$categories}", 

, 그것은 문자열로 캐스팅됩니다. PHP에서 배열을 문자열로 변환하면 결과는 항상 Array이됩니다.

은 간단하게 변경 :

'List'=> $categories, 

당신이 예상대로 작동합니다.

+0

나는 안경을 사야 할 필요가 있다고 생각한다. –