나는 지금까지 시스템의 모든 사용자에 대한 모든 정보를 저장 한 "사용자"라는 하나의 테이블과 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 필드에 내부 값.
, 당신은 GET이 뭔가를 추가 할 수 있습니다 method '$ this-> db-> select (array ('col1', 'col2')); $ this-> db-> 여기서 (array ('type'=> 'external', 'othercondn'=> value)); return $ this-> db-> get (tablename) -> result(); ' – smitrp
이 경우 CI_Model의 단일 확장 모델을 사용하여 구현하려는 경우 확장 모델에서 두 가지 방법을 사용할 수 있습니다. 1) get_internal() - 여기에서 함수 매개 변수는 다음과 같이 변경합니다. '$ this-> db-> where (array ('type'=> 'external', 'othercondn'=> value)); ' 2) get_external() -이 함수의 매개 변수를 어디에서 바꿀 수 있습니까? '$ this-> db-> 여기서 (array ('type'=> 'internal', 'othercondn'=> value))); – smitrp
귀하의 의견을 기다리고 있습니다. 외부/내부에 대해 두 개의 다른 클래스/모델을 갖기를 희망했는데 형식 매개 변수를 고려할 필요가 없었습니다. 그러나 당신이 주어진 idéa 나는 내 모델에서 get() - 메서드를 확장 할 수 있습니다. function get() {$ this-> db-> where ('type'=> 'internal'); parent :: get(); } – jonixj