Q&A

CMS/프레임워크 Rhymix 2.1
개발 언어 PHP 8.4

public function procBoardInsertDocument()
    {

 

..(중략)....

 

// return the results
        $this->add('mid', Context::get('mid'));
        $this->add('document_srl', $output->get('document_srl'));
        $this->add('category_srl', $output->get('category_srl'));
        $this->setRedirectUrl(getNotEncodedFullUrl('', 'mid', Context::get('mid'), 'document_srl', $output->get('document_srl')));
        
        // alert a message
        $this->setMessage($msg_code);

 

}

 

board.controller.php 인데요

분명 $this->setMessage($msg_code)는 되어있고

디버그로 출력해보면 $msg_code에도 값이 잘 들어가 있는데

 

작성 및 수정후에는 뷰에서 alert 값을 못받아 옵니다.

 

{$XE_VALIDATOR_MESSAGE}

{$message}

2개 다 못받아 옵니다.

 

_view.document.html에 따로 호출시켜봐도 못받아오네요.

 

어떻게 받아오게 할 수 있을까요..

코어의 버그일까요??

 

아님 제가 놓친게 있을까요..

 

초코보더 Lv. 1

댓글 1

  • 16시간 전 #1908168

    에러가 없는 "성공" 상태에서 setMessage()를 하면 대부분의 경우 무시됩니다.

    관리자 화면에서는 "수정되었습니다." 같은 메시지가 뜰 때도 있지만, 일반 회원이 보는 화면에서는 드물지요.

    그렇다고 에러 상태를 만들어 버리면 글쓰기에 실패할 테니 곤란하겠고요.

     

    성공 상태에서도 글쓰기 직후 어떤 메시지를 표시하고 싶으신 거죠?

    그렇다면 두 가지 방법이 있을 것 같습니다.

     

    1. modules/board/tpl/js/board.js에 있는 completeDocumentInserted 함수에서 ret_obj.message를 alert하도록 해 보세요. 글쓰기가 성공했을 때 글읽기 화면으로 리다이렉트시키는 함수입니다.

     

    2. 별도의 세션 변수에 메시지를 저장해 두었다가, 글읽기 화면에서 해당 세션 변수가 존재하면 alert하는 방법이 있겠습니다. 질문하신 내용을 보면 특정 변수에 에러 메시지가 저장되어 있을 거라고 기대하신 모양인데, $message 같은 것은 원래 존재하지 않습니다. 글읽기 화면으로 넘어간 후에도 변수가 존재하도록 하려면 세션에 저장해 두어야 합니다.