외부페이지에서 회원정보 추가 항목 데이터 업데이트(추가/수정) 방법
CMS/프레임워크 | Rhymix 2.0 |
---|---|
개발 언어 | PHP 8.0 |
문제 페이지 주소 | 비공개 (작성 후 5일 경과) |
회원정보에 text로 이루어진 city 항목이 있다고 가정할게요. 해당 데이터는 필수항목은 아닙니다.
이제 외부 페이지에 접근했다 가정할게요. 거기에는 버튼이 있고요. 버튼을 누르면 회원정보 추가 항목인 city 데이터를 업데이트(추가/수정)하고 싶어요..!! 예를 들어 버튼 클릭하면 city에 'Seoul'이라는 값을 입력시키는거죠 또는 이미 다른 것으로 되어있다면 'Seoul'로 업데이트하는거죠.
member 모듈에서 처리가능할 것 같은데 일단 &getModel('member'); 불러오고 설정 &getController('member'); 도 불러오고
그리고 어떤 함수를 불러와야 할까요?
procMemberInsert
procMemberModifyInfoBefore
procMemberModifyInfo
insertMember
updateMember
updateMemberExtraVars
어떤 방식으로 시도를 해야할까요?
댓글 10
updateMember에서 기존의 $args 인자 넘길때 기존 회원정보의 인자값과 함께 님이 만드신 확장변수인 city 항목을 $args->extra_vars 안에 serialize 시켜서 잘 넘겨줘야 합니다.
기존의 확장변수가 없어지지 않도록 기존 회원정보를 재대로 가져와서 extra_vars에 있는 항목을 조합할 수 있도록 만드시는게 관건이겠네요.
확장변수만 업데이트하시려면 updateMemberExtraVars가 좀더 안전합니다.
확장변수가 아닌 정보는 건드리지 않으니까요.
procMemberInsert
procMemberModifyInfoBefore
procMemberModifyInfo
요롷게 시작되는 항목들은 대부분 form 태그안에서 act값을 불러오는 메소드에 해당됩니다.
즉 외부에서 getController('member')->procMemberInsert()
이렇게 싸용하는걸 권장하지 않는 항목들입니다.
그러니 "새로운 모듈"을 제작하여 해당 모듈에서 proc로 시작되는 POST전용 메소드를 만들어 해당 버튼을 form으로 잘 만들어주면 간단하게 버튼으로써 해결이 가능합니다.
때에 따라서 input type hidden 옵션을 줘서 member_srl 을 바꿔서 진행하셔도 되고요.
input type hidden을 줘서 처리했는데 이상하게 바로 바뀌지 않고 두번 눌러야(새로고침되고나서 버튼 한번 더 눌러서) 비로소 변경이 되더라고요 왜 그러는걸까요 ㅜㅜ..
구현하신 부분이 뭔가 잘못됬는지 확인이 안된다면 저희도 도움이 드릴 방도는 없지요.
실력이 부족한 제가 람보님의 설명이 어렵게 느껴지니 공부해야겠네요 ㅠㅠ
단순히 접근하면 확장변수를 업데이트만하면 되는 것이라 updateMemberExtraVars을
이용했습니다..!! 배열을 불러와서 값을 그냥 바로 대입했어요..!!