2009-10-07 5 views
1

저는 Zend Framework를 사용하고 있으며 사람들이 양식 제출을 처리하는 방법에 대해 궁금합니다. 지금, 나는이 같은 것을 사용하고 있습니다 :Zend_Form (및 유효성 검사)을 사용하여 다른 동작으로 게시

public function editAction() 
{ 
    $form = my_form(); 
    $this->view->form = $form; 

    if ($this->getRequest()->isPost() { 
     $params = $this->getRequest()->getPost(); 

     if ($form->isValid($params) { 
      // process form 
     } 

    } 
    } 

새로 고침의 양식을 재 게시 페이지의 시도를 갖는 것은 사용자의 단지 성가신하고 절망적이다. 모든 양식 처리를 '편집'작업에서 벗어나 '업데이트'작업 (좀 더 REST 방식)으로 옮기고 싶습니다. 그러나 위의 방법을 사용하지 않고 Zend_Form에 내장 된 검증 데코레이터를 활용하는 좋은 방법을 찾지 못했습니다. 위의 방법을 사용하면을 호출 한 후 양식이 $form->populate()이면 자동으로 오류 메시지가 나타납니다.

(장식자를 사용하여) 여러 요청을 통해 양식에 유효성 검사 메시지를 보관하는 좋은 방법이 있습니까? 그렇지 않은 경우 누구든지 세션에서 양식 유효성 검증을 저장하기위한 확실한 솔루션을 보유하고 있습니까?

감사합니다.

답변

2

다른 컨트롤러/동작으로 양식을 처리 한 후. 이렇게하면 클라이언트에 리디렉션 헤더가 전송되고 사용자는 성가신 경고 창없이 페이지를 새로 고칠 수 있습니다.

if ($form->isValid($params) { 
    // process form 
    .... 
    .... 
    $this->_helper->Redirector->goto('another-action'); 
} 
0

내 방법은 다음과 같습니다 s 번째입니다 :

/index 액션 ->의 목록을 말할 수 블로그 게시물 -> 업데이트 작업 -> 업데이트 작업에 인덱스 에서 선택한 블로그 포스트 (의사를) 업데이트 :

if(is_post){ 
    if(data_valid){ 
    update_data() 
    redirect_to_index() 
    } else { 
    show_messages() 
    } 
} 
+0

내 대답은 개념적입니다. 그러나 구현 세부 사항은 Goran Jurić가 대답합니다. –

관련 문제