CI 묻고 답하기

제목 초보 질문이 있습니다. rest풀 방식의 유알엘 성격(?) 질문 밑 post 인자값 유지 방법입니다.
글쓴이 승태 작성시각 2015/09/10 16:46:55
댓글 : 5 추천 : 0 스크랩 : 0 조회수 : 18690   RSS

안녕하세요 . 

코드이그나이터와 같은 레스트풀 방식의 유알엘을 쓰는 프레임워크를 처음 써보는지라 

궁금증이 많습니다. ( www/qna/wirte ) 이와 같은 방법을 레스트풀 이라고 하는것 맞지요 일단 ? 


일단 첫번째 질문은  기존 겟으로 값을 넘길때 값의 수에 대해서 가변성이 있다면 

예를 들어 1~3개가 넘어갈수 있다면 

기존에는 www/view.php ? board_id=1 & conf_id =10 & menu_id = 3 

이와 같은 방법으로, board_id ( 게시물) 은 1번, 설정값은 10번, 메뉴번호는 3번 이런식으로 넘겼었는데요. 

코드이그나이터는  segment 를 써서 , 또는 겟방식을 쓴다고 하더라도 위의 방식대로 쓰려면 

www/컨트롤러/view/1/10/3   위와 같이 쓰면 되는것 까진 알겠습니다. 

하지만 항상 겟에 데이터가 모두 들어가는 상황이 아니라면 어떻게 하나요 ? 예를 들어 

www/view.php ? board_id=1 & conf_id = & menu_id = 3

위와 같이 conf_id 라는 항목에는 값이 안들어갈 수도 있는 상황이 있습니다. 기존은 겟방식을 쓰더라도
넘어오는 이름 값을 가지고 컨트롤 하면 됐지만 코드이그나이터는 넘어오는 순서로 판별하는것 아닌가요 ? 

그러면 위와 같은 상황은 www/컨트롤러/view/1/3  이렇게 표현이 될테고

이러면 사실상 segment(4) ,  이런식으로만 컨트롤하면 의미가 달라지게 될텐데 어떻게 처리해야될까요.




또 post 로 받은 인자값에 대한 유지 질문입니다. 기초적인 웹에 대한 지식이 없는게 아닐까 합니다. 

예를 들어 어떤 B라는 페이지를 읽기 위해 A라는 페이지에서 포스트값을 주어서 B페이지를 접속 성공하였습니다. 

이후에 다시 B라는 페이지에서 포스트값을 넘겨서 C라는 페이지를 읽습니다. 

이후 C에서 뒤로 가기를 누르면  B라는 페이지를 보기 위해 필요한 post값은 A에서 액션으로 넘어올때만 

받을 수 있으므로 사실상 페이지가 나오지 않습니다. 

크롬에서는 "
양식 다시 제출 확인 ERR_CACHE_MISS  " 이러 ㄴ메세지가 나오고 여기에서 새로고침을 한번 더 눌러야 정상 출력됩니다. 

C페이지에서 뒤로가기 눌렀을때 B페이지가 정상적으로 나오게 하는 방법은 뭐가 있을까요 ? 

post값을 세션에 넣어두고 써야 하는걸지... 이건 아닌거같은데. 

휴 질문이 길었습니다. 답변 부탁드립니다!!. 


  

 
 다음글 이메일 전송 실패가 되는데, 원인을 알 수 있을까요? (4)
 이전글 mysql 액티브레코드관련 질문입니다. (1)

댓글

변종원(웅파) / 2015/09/10 17:04:20 / 추천 0
/controller/method/val1/11/val2/22/val3/null/val4/44

위와 같이 사용했습니다. 값이 null 인 경우엔 '' 으로 치환해서 사용했구요.

복잡하게 가변적으로 사용해야 하는 케이스라면 하이브리드(?)형태로 썼습니다.

/controller/method/?val1=11&val2=22&val3=&val4=44

강좌게시판에서 config.php 파헤치기 보시면 해당 설정값 있습니다.
변종원(웅파) / 2015/09/10 17:07:26 / 추천 0
두번째 질문은 쿠키나 세션으로 만들어두고 사용합니다.

매뉴얼에서 session - flashdata 참고하세요.

그리고 원칙적으로 뒤로가기 했을때 데이터가 사라지는게 맞습니다.
한대승(불의회상) / 2015/09/10 17:08:30 / 추천 0
SEO 친화적 이라고 표현 하는데 질문한 부분에 대한 단점이 있습니다.
이에 대한 대책은 2가지 입니다.

1. 그냥 GET 으로 데이터를 넘기는 방법 ?a=1&b=1 
2. index.php/user/search/name/joe/location/UK/gender/male 방식으로 사용하고 $this->uri->uri_to_assoc() 로 데이터를 가져오면 됩니다.

POST 데이터는 웅파님이 제안하신 flash_data 를 사용하세요.
승태 / 2015/09/10 17:14:34 / 추천 0
친절하고 빠른 답변 감사드립니다.  세션을 쓰는게 맞군요.  감사합니다. 

두분다 좋은 하루 되시길 바랍니다. 그리고 책도 샀습니다~_~ ( 그냥..책을 산 회원이라고 알려드리고싶었어요..) 
 
변종원(웅파) / 2015/09/10 18:08:50 / 추천 0
승태/ 감사합니다. ^^ 열공하세요.