CI 코드

제목 [예제] 세그먼트에 간략 사용
글쓴이 ci세상 작성시각 2009/08/26 12:34:09
댓글 : 4 추천 : 0 스크랩 : 0 조회수 : 12156   RSS


일반 파라미터 체계의 개발을 하다가 세그먼트 주소체계로 CI로 접하다 보면 정말로 난처한 경우가 생기는것 같습니다.

하지만 잘만 응용하면 파라미터보다 더 보기 좋고 깔끔하게 처리가 가능합니다.

<컨트롤러 부분>

1. 일반 파라미터 : name=홍길동&id=test
2. 세그먼트 : name/홍길동/id/test

2번과 같이 만들어서 무조건 모델이나 뷰로 넘겨보세요 ..

$this->uri->uri_to_assoc(n) 과같은 url 라이브러리를 이용하시면 쉽게 세그먼트를 구할 수 있습니다.

참조 : http://codeigniter-kr.org/user_guide/libraries/uri.html


<모델 처리 경우>

아래 부분은 세그먼트를 받아서 엑티브 레코드를 쉽게 만들어 주는 경우입니다.

 

$arr = explode('/', $q); 
$new_arr = array(); 
foreach($arr as $key => $value) 
{ 
	if($key % 2 != 0) 
		$this->db->like("$prev_value", $value);
		$prev_value = $value; 
		 
} 	


위와 같이 쓰면

 

where nake like '%홍길동%' && id like '%test%'



와 같은 엑티브 레코드 조건절을 생성해주게 됩니다.



위 처럼 하니 ~~ 왜? CI 개발시 세그먼트를 권장했는지 이해가 되었습니다. 주소체계가 보기 좋고 ~~ 배열로 받아서 응용하기가 쉬워서 엑티브 레코드같은곳에 바로 대입이 간단히 가능하다는것이었습니다.^^


이정도면 ~~ 세그먼트에 대한 두려움을 없애주는 팁이 되셨는지 모르겠습니다.  


CI로 개발을 했다라는 자랑을 어디가서든지 할 수 있는 그날까지 쭈욱 미천한 지식들 오픈공개합니다. ㅎㅎ

 

 다음글 [예제] 입력,수정에서의 폼체크 및 처리 (3)
 이전글 [예제] 폼 헬퍼 사용

댓글

ci세상 / 2009/08/26 12:41:42 / 추천 0
위에 처럼 하면 조건절이 like만 되네요? 이것을 여러가지 조건절을 쉽게 넣을 수 있는부분도 고민중입니다.^^
변종원(웅파) / 2009/08/26 12:46:03 / 추천 0
세그먼트를 쓰게되면 말씀하신 것처럼 코딩규칙을 정하고(3번째 세그먼트까지는 디폴트로 사용하고
4번째 세그먼트부터는 변수로 사용한다. 등) 4번째 세그먼트부터 처리하는 함수를 하나 만들면
정말 편해집니다.
제가 올렸던 소스를 마냐님이 함수화한게 있습니다.


ci세상 / 2009/08/26 12:58:00 / 추천 0
마냐님께서 만들어 주신 http://codeigniter-kr.org/source/view/58/page/1 검색파라미터 구하기 이부분이지요?
변종원(웅파) / 2009/08/26 17:24:41 / 추천 0
네 맞습니다. ^^