2.2

2012-10-04 3 views
0

나는2.2

경우 주석이,이 같은 행동에 비어 있지 갈 것 둘 이상의 컨트롤러 (포스트, 댓글, 카테고리 ...)와 상호 작용하는 전망을 이 같은 뭔가 이전보기로 다시 (코멘트/추가)하지만,이 경우에는 내가 수동으로 리디렉션 :

$this->redirect(array('controller' => 'posts', 'action' => 'view', $this->request->data['Comment']['posts_id'], '#' => $this->Comment->id)); 

그들은 예를 들어, 빈 코멘트를 게시하려고하면 일이, 코멘트의 확인입니다 그것을 덧글/덧글 (어떤 양식 동작에 대한 경로입니다)로 리디렉션하지만 나는 이것을 할 리디렉션을 원하지 않아. 원래보기로 돌아가고 컨트롤러 또는 모델에서 변경하지 않아도됩니다 (알고있는 한)

어떤 방법이 있습니까?

감사합니다.

답변

1

가장 쉬운 방법은 양식을 AJAX를 통해 제출하는 것입니다. 따라서 제출시 전체 페이지를 새로 고치지 마십시오. 오류가있는 양식이 있으면 양식이 다시 나타납니다.

분명히 Javascript가없는 사용자에게는 작동하지 않습니다. 따라서 사용자에 대해 걱정할 필요가 없으며, 주석 컨트롤러의 add 메소드에서 원하는보기를 사용할 수 있습니다. 이런 식으로 뭔가 :

if ($this->request->is('ajax')) { 
    $this->render('/Elements/comment_form'); 
    return; // return the form only 
} else { 
    $this->render('/Posts/view'); // Your post view.ctp would have the comment form on it. 
} 

여기에 내가 그 방법을 사용했습니다 페이지의 예 : http://www.lintonmeagher.com/contact 데이터없이 양식 중 하나를 제출하십시오.

추가 정보가 필요하면 알려주세요.