2017-02-23 8 views
2

나는 내가 다음과 같은 컨트롤러를 만들어 composer create-project -sdev zendframework/skeleton-application my-application는 젠드 프레임 워크 3 MVC 응용 프로그램은 간단한 문자열

로 만든 ZF MVC 응용 프로그램을에게 반환 만들기.

class SomeController extends AbstractRestfulController 
{ 
    public function someAction() 
    { 
    $key = $this->params()->fromQuery('key'); 
    if (empty($key)) { 
     $this->response->setStatusCode(Response::STATUS_CODE_400); 
     return new JsonModel([ 
      'status'=> 'Error', 
      'messages'=> [ 
       'key required' 
      ], 
     ]); 
    } 
    return $this->someService->getStringByKey($key)); 
    } 
} 

가 나는 SomeService::getStringByKey($key)의 결과의 시체와 함께 텍스트/일반의 콘텐츠 형식을 반환합니다. 대신 오류가 발생합니다 :

Zend\View\Renderer\PhpRenderer::render: Unable to render template "XXXXXXXXXX"; resolver could not resolve to a file `

어떻게하면 컨트롤러 작업이 일반 문자열을 반환하게합니까?

답변

1

글쎄, 당신은 매우 가까운 :)

class SomeController extends AbstractRestfulController 
{ 
    /** 
    * @return \Zend\Http\PhpEnvironment\Response 
    */ 
    public function someAction() 
    { 
     $string = $this->someService->getStringByKey($key)); 

     $this->response->getHeaders()->addHeaderLine('Content-Type: text/plain'); 
     return $this->response->setContent($string); 
    } 
} 
+0

감사합니다. mime 형식이 설정되도록 편집했습니다. RawTextStrategy와 같은 더 깨끗한 솔루션을 원했지만 지금은 그렇게 할 것입니다. –

+0

흠, 유는 기존 모델과 전략을 확인할 수 있습니다 https://github.com/zendframework/zend-view/tree/master/src 원시 계획 텍스트에 대한 전략은 아마도 과장 될 수 있습니다 :) 그러나 어쨌든 재미있는 ... – tasmaniski