2013-03-13 3 views
-1

나는 지금까지 시스템의 모든 사용자에 대한 모든 정보를 저장 한 "사용자"라는 하나의 테이블과 dm 클래스가있는 스케줄링 응용 프로그램을 개발했습니다. 모든 사용자는 내부 사용자입니다.테이블 당 1 개 이상의 객체 유형

이제 외부 사용자 (고객)에게도 로그인 기능을 구현해야합니다.

내 질문 : 이제 테이블 사용자를 사용하고 'user_type'(내부/외부) 열거 형 필드를 추가하고 싶습니다.

그런 다음 internal_user라는 datamapper 개체와 exernal_user라는 datamapper 개체를 만들고 싶습니다. 내가

$external_user = new External_user(); 
$external_user->get(); 

을 실행할 때

나는 단지 내 사용자 테이블의 행을 취득하려는 USER_TYPE = 외부. datamapper를 사용하여 좋은 방법으로 달성 할 수 있습니까?

UPDATE :이 같은 Datamapper 클래스의 get 메소드를 재정 의하여 문제를 해결

:

class Internal_user(){ 
    [...] 
    function get() 
    { 
     $this->where('type', 'internal'); 
     return parent::get(); 
    } 
} 

지금이 라인 :

$internal_user->get(); 

만에 레코드를 반환 내 user_type 필드에 내부 값.

+0

, 당신은 GET이 뭔가를 추가 할 수 있습니다 method '$ this-> db-> select (array ('col1', 'col2')); $ this-> db-> 여기서 (array ('type'=> 'external', 'othercondn'=> value)); return $ this-> db-> get (tablename) -> result(); ' – smitrp

+0

이 경우 CI_Model의 단일 확장 모델을 사용하여 구현하려는 경우 확장 모델에서 두 가지 방법을 사용할 수 있습니다. 1) get_internal() - 여기에서 함수 매개 변수는 다음과 같이 변경합니다. '$ this-> db-> where (array ('type'=> 'external', 'othercondn'=> value)); ' 2) get_external() -이 함수의 매개 변수를 어디에서 바꿀 수 있습니까? '$ this-> db-> 여기서 (array ('type'=> 'internal', 'othercondn'=> value))); – smitrp

+0

귀하의 의견을 기다리고 있습니다. 외부/내부에 대해 두 개의 다른 클래스/모델을 갖기를 희망했는데 형식 매개 변수를 고려할 필요가 없었습니다. 그러나 당신이 주어진 idéa 나는 내 모델에서 get() - 메서드를 확장 할 수 있습니다. function get() {$ this-> db-> where ('type'=> 'internal'); parent :: get(); } – jonixj

답변

1

이 경우 CI_Model의 단일 확장 모델을 사용하여 구현하려는 경우 확장 모델에서 두 가지 방법을 사용할 수 있습니다.

  1. 의 get() - 기본 모델에서 (CI_Model을 상속)을 변경할 경우 같은 기능 PARAMS이

    $this->db->select(array('col1', 'col2')); 
    
    $this->db->where(array('type' => 'internal', 'othercondn' => value));  
    
    return $this->db->get(tablename)->result(); 
    
  2. get_external() - (BASEMODEL을 상속)이 모델은 기능 변경에 External_user이 CI_Model에서 모델을 확장하는 경우이

    $this->db->select(array('col1', 'col2')); 
    
    $this->db->where(array('type' => 'internal', 'othercondn' => value)); 
    
    return $this->db->get(tablename)->result(); 
    
    같은 PARAMS는
관련 문제