2017-02-07 11 views
1

Zend Framework 3 애플리케이션이 있습니다. 에 ViewJsonStrategy을 추가했습니다. 이것은 다음과 같은 엔드 포인트 반환 JSON을 할 수 있습니다 :ZF3 MVC 응답에 객체 직렬화하기 JSON

public function helloAction() { 
    return new JsonModel([ 
     'msg'=> 'Hello World!', 
    ]); 
} 

는 그러나, 나는 객체

class HelloObjectResponse 
{ 
    protected $message; 

    public function getMessage() : string { 
     return $this->message; 
    } 

    public function setMessage(string $message) : self { 
     $this->message = $message; 
     return $this; 
    } 
} 

public function helloObjectAction() { 
    $obj = new HelloObjectResponse(); 
    $obj->setMessage('Hello World!'); 
    return new JsonModel($obj); 
} 

이 나에게 젠드 오류 메시지를 제공을 반환합니다.

Zend \ View \ Model \ ViewModel :: setVariables : 배열 또는 Traversable 인수가 필요합니다. "Application \ Model \ HelloObjectResponse"를 받았습니다.

zend가 mime 유형 및 모든 것을 설정하는 방법으로 쉽게 JSON을 어떻게 만들 수 있습니까?

답변

2
use Zend\View\Model\JsonModel; 
use Zend\Hydrator\Reflection; 

$obj = new HelloObjectResponse(); 
$obj->setMessage('Hello World!'); 

$hydrator = new Reflection; 
return new JsonModel($hydrator->extract($obj)); 
+0

이것은 답변입니다. 나는 아마 그것에 대해 생각한 후에 약간 다른 것을하고있을 것이다. –