CI 묻고 답하기

제목 class 내부에서 class 이름을 얻는 방법이 있을까요?
글쓴이 아로운 작성시각 2013/08/16 20:42:37
댓글 : 2 추천 : 0 스크랩 : 0 조회수 : 16496   RSS
CI 사용 6개월인 초보 개발자입니다.

액티브 레코드 사용중에 테이블명을 자동으로 넣는방법을 생각하다가 질문하게 됬는데요,
내용인 즉슨.

class User extend CI_model {
}

위의 임의 모델안에서 User라는 클래스 명을 자동을 가져오는 것입니다.
클래스명과 테이블명을 동이하게 쓰기 때문에, 가능하다면 작업이 많이 편해질것같아 질문드립니다.
모든 답변자분들께 미리 감사를 드립니다.

 다음글 CI 초보인데, 초기 실행 순서를 잘 모르겠습니다. (1)
 이전글 CI 에서 pdo 를 사용할려면 .. (3)

댓글

kirrie / 2013/08/16 22:00:49 / 추천 0
한대승(불의회상) / 2013/08/20 10:53:06 / 추천 0
아로운// 모델을 자동화 하는 좋은 방법을 생각해 내셨군요. ^^
저도 실무에 적용해 봐야 겠습니다.

CI는 모델 정의시 첫번째 글자를 대문자로 해야 한다는 것과 모델명이 라이브러리와 혼동이 되거나 충돌 할 수 있다는 부분이 조금 걸리네요.

그래서 이렇게 해 봤습니다.
참고 하세요.

class T1_model extends CI_Model {
 private $tbl;
 
 function __construct()
 {
  parent::__construct();
  
  $this->tbl = str_replace('_model', '', strtolower(get_class($this)));
 }
 
 function get_tbl()
 {
  return $this->tbl;
 }
}
그런데 이렇게 해놓고 보니 그냥
class T1_model extends CI_Model {
 private $tbl;
 
 function __construct()
 {
  parent::__construct();
  
  $this->tbl = 't1';
 }
 
 function get_tbl()
 {
  return $this->tbl;
 }
}
이렇게 하는게 낫지 않을까 하는 생각도 드네요. ^^