CI 묻고 답하기

제목 변수 순서에 관계없이 받을 수 있을까요??
글쓴이 잉잉 작성시각 2012/12/12 21:17:41
댓글 : 4 추천 : 0 스크랩 : 0 조회수 : 12881   RSS
주소/controller/method/arg1/arg2/....

일 때

arg1을 생략한채 arg2만 쓸 수가 있을지요..

method(arg1 = "box", arg2 = "red"){..

컨트롤러가 이렇다면 주소에 arg1을 어떻게 생략할까요??

../method/blue로 arg2에 "blue"를 넣고 싶습니다.
 다음글 SQL문과 코드이그나이터로 한 게 좀 틀리게 나옵니다. (6)
 이전글 join문 질문입니다. (3)

댓글

헛발이 / 2012/12/13 09:29:48 / 추천 0
생략한다는게 무슨 말인지 잘 이해가 안가는군요...

segment로 해결이 안되는건가요?
pithecus / 2012/12/13 10:11:26 / 추천 0
method (또는 CI->uri) 에 arg1 은 null 이라는 것을 전달해줘야
"blue" 를 arg2 가 아닌 arg1 로 인식을 할 것입니다.

codeigniter 의 경우 주소/controller/method//arg2/ 이렇게 / 를 연달아 쓰면
하나로 인식해버려서 arg2 를 arg1 로 할당하겠죠.

한가지 생각나는 방법은 $this->uri->uri_to_assoc(n) 를 이용해서 
아래처럼 인자를 키/값 배열로 넘겨줄수도 있겠네요.
주소/controller/method/arg1/false/arg2/blue 

정 안되면 GET 값으로 넘겨줘도 될것 같은데 다른 분들은 어떻게 쓰고계신지 궁금하네요 :)
milosz / 2012/12/13 10:41:23 / 추천 0
arg1에 null을 전달하는 이유가 기본값인 box를 받기 위해서인가요 아니면 정말 arg1이 null 값으로 처리되는 부분이 있는 것인가요?
 
domain driven 으로 생각한다면 box가 기본값이더라도 /box/red 로 되어야 어떤 컨텐츠가 들어있는지 도메인을 통해 유추할 수 있으니 넣어주는게 좋을 것 같단 생각이 듭니다 'ㅅ'
 
언급하신대로 get이나 post값으로 받거나 아니면 key-value 페어로 받으시는 방법도 좋을듯 하네요 ~ㅅ~
지훈임돠 / 2012/12/13 11:06:20 / 추천 0
 arg1 이 빠질수 있는 URI 는 아름답지 못한거 같습니다^^ ㅎㅎ 

milosz 님 말씀처럼 get,post 를 사용함이 좋고,

굳이 세그먼트형식을 쓴다면 key-value 형식으로 써야할꺼같아요^^