2012-09-12 2 views
1

나는 모든 JSON 응답 (something like Standardised JSON response from views)을 원한다. 다음은 JSON 응답 예를젠드 프레임 워크 용 사용자 정의 표준 JSON 응답

{ 
    "status" : "failure", 
    "errors" : { 
     "name" : [ "Error text 1", "Error text 2" ], 
     "email" : [ "Email error text" ] 
    } 
} 

입니다 그리고 여기에 클래스

class JsonResponse 
{ 

    protected $_errors = array(); 

    public function addError($key, $value) { 
     $this->_errors[$key][] = $value; 
     return $this; 
    } 

    public function setFormErrors(Zend_Form_Abstract $form) { 
     $this->_errors = $form->getErrors(); 
     return $this; 
    } 

    public function __toArray() { 
     if (!empty($this->errors)) { 
      return array(
       'status' => 'fail', 
       'errors' => $errors, 
      ); 
     } 
     return array(
      'status' => 'success',    
     ); 
    } 

    public function __toString() { 
     return json_encode($this->__toArray()); 
    } 

} 

모든 위대한 내 standartised JSON 응답을 구현하지만,이 클래스를 사용하면 엉덩이에 진짜 고통이다.

class App_Controller extends Zend_Action_Controller 
{ 

    public function submitAction() 
    { 
     $form = new App_Form(); 
     $form->isValid($this->getRequest()->getPost()); 

     //disabling displaying layout 
     $this->_helper->layout()->disableLayout(); 
     $this->_helper->viewRenderer->setNoRender(true); 

     $response = new JsonResponse(); 
     $response->setFormErrors($form); 

     echo $response;  
    } 

} 

저는 젠드 프레임 워크에서 진짜 놈입니다. 가장 좋은 포장 방법은 무엇입니까 JsonResponse?

  • 도우미
  • Zend_Controller_Response_Abstract
  • 새로운 컨텍스트 스위치가
  • Form

가장 좋은 방법은 무엇인가에 구현 확장?

Creating a custom JSON response object with Zend Action Helper ContextSwitch - 좋은 방법이지만 여전히 너무 많은 코드가 필요합니다.

답변

0

IMO 컨텍스트 스위치 (JSON 또는 자신의 것)를 사용하고 선호하는 방법으로 응답 데이터 구조를 형식화해야합니다.

아약스 양식 유효성 검사를 구현하는 것처럼 보입니까? 어쩌면 당신은 이것에 봐야한다 : Zend form ajax validation on submit (그리고 대략 processAjax()를 물어보십시오)

관련 문제