2013-03-07 4 views
0

다른 모듈이 있고 모두 Action에서 ViewModel을 반환합니다. 하지만 어떻게 든 ViewModel은 모듈 중 하나에서 이상한 행동을합니다.Zend Framework 2 ViewModel은 일부 모듈에서 빈 출력을 반환합니다.

나는 말하고있다.

$view = new ViewModel(array('data' => $someContent)); 
$view->setTemplate('a valid path to template'); 

return $view; 

빈 페이지가 나타납니다.

내가

<!DOCTYPE html> 
<html> 
    ... 
</html> 
<?php exit(); ?> 

같은 관련 템플릿의 끝에서 종료() 문을 넣으면 스크립트가 종료하지만 난 그렇지 않으면 출력을 잃었 때문에 내가 예상 출력을 얻을 수 있습니다.

* var_dump ($ view) *라고하면 $보기가 Zend \ View \ Model \ ViewModel의 인스턴스임을 알 수 있습니다.

오류가 없으며 빈 출력 만 표시되며 경고 경고도 표시됩니다. 따라서 예외, 오류, 경고, 알림 등을 던지지는 않습니다.

다시 말하면, 특정 모듈에서만 발생하지만 실제로는 다른 모듈과 다르지 않습니다.

나는 ZF 전문가가 아니며 다른 사람의 코드에 대해 작업하고 있으므로 문제를 찾을 수있는 출발점을 알려주십시오.

미리 감사드립니다.

편집 : 추가 정보가 있습니다.

ViewModel 대신 JsonModel을 사용하면 JsonModel이 ViewModel을 확장한다는 것을 알 수 있습니다.

+0

exit() 도움으로 출력 버퍼링이 마음에 듭니다. 특정 모듈에서 일어난다면, 그 모듈은 출력 버퍼링으로 무언가를 할 것입니다. – hakre

+0

맞아요.하지만 버퍼링이나 ViewModel에 영향을주는 것과 관련된 어떤 것도 찾을 수 없었습니다. – Tim

+0

경고와주의 사항을 php.ini의 최상위 레벨로 올리십시오. 오류 로깅을 활성화하고 로그를 따라 경고 /주의 사항/오류를 찾으십시오. – hakre

답변

1

컨트롤러 작업을 제대로 게시하지 않았으므로이 문제가 내가 수행 할 수있는 작업 일 것입니다.

젠드 프레임 워크 2에는 모듈에서 컨트롤러를 확장하는 다양한 컨트롤러 유형이 있습니다.

예를 들어 컨트롤러를 AbstractActionController에서 확장하면보기가 제대로 반환됩니다.

여기 다른 모듈에는 AbstractActionController를 확장하는 컨트롤러가 있습니다. 제대로 보지 못하는이 모듈은 확장하지 않을 수도 있습니다. 대신 restfulcontroller와 같은 다른 컨트롤러를 확장 할 수도 있습니다

모듈의 module.php 파일에서 module.config.php의이 모듈에 대한 부트 스트랩에 json 전략을 적용한 전략이 있는지 확인해야합니다.

예 :

return array(
    'view_manager' => array(
     'strategies' => array(
      'ViewJsonStrategy', 
     ), 
    ), 
) 

viewmanager에 대한 템플릿에 대한 적절한 사양이 있는지 여부도 module.config.php 파일에서 확인하십시오.

예 :

'view_manager' => array(
     'template_path_stack' => array(
      'album' => __DIR__ . '/../view', 
     ), 
    ), 

희망이 있습니다.

+0

내 게시물에 대한 자세한 내용은 많지 않지만 프로젝트 때문에 아무 것도 줄 수는 없으며 모조품을 준비하는 것은 실제로 그렇게하지 않는 너무 많은 시간을 소비하게됩니다. 죄송합니다. 하지만 귀하의 게시물 정말 도움이되었고 문제를 발견했습니다. 먼저 모듈에 대한 레이아웃 정의가 없습니다. 둘째, 모듈의 레이아웃 파일이 비어 있습니다. 나는 단순히 내용을 인쇄하라는 지시를한다. 답변으로 메시지를 선택해도 아무런 해가 없다고 생각합니다. 고마워요. – Tim