2013-03-29 3 views
0

나는 Yii의 헬퍼 클래스에 공통 함수를 포함시키는 법을 안다. 그러나 값을 낮추는 것과 같은 일반적인 데이터는 어떻습니까? 많은 파일에 포함을 반복하지 않고 Yii의 일부 공용 데이터에 액세스하려면 어떻게해야합니까?Yii 공통 데이터를 포함하는 방법은 무엇입니까?

userTypes 어레이
'C'=> 문자열 '고객
'O '=> 문자열'공식 : 데이터베이스 예컨대 사용자 유형 (1) 및 코드 I 같은 배열을 정의 VARCHAR이고
'F'=> 문자열은 '금융은
'는 t는 '=> 문자열'clearancer '
'A '=> 문자열'관리자 '

가이 물건을 많이하고 난 WA nna는 그것을 처리하는 가장 좋은 방법이 무엇인지 압니다.

+0

어떤 종류의 데이터입니까? 예제를 보여줄 수 있습니까? 일반적으로 맞춤 모델을 만드는 것이 합당한 옵션입니다. – Jon

+0

질문이 업데이트되었습니다. – HPM

+0

당신은 이미'User' 모델을 가지고 있는데,이 값을 할당받는 속성이 있습니까? – Jon

답변

3

PHP의 성격 때문에 직접 구현할 수 있습니다.

class GlobalData { 
const USER_TYPE_CUSTOMER = 'c'; 

static function getUserTypes(){ 
    return array(
    'c' => string 'customer', 
    'o' => string 'official', 
    'f' => string 'financial, 
    't' => string 'clearancer', 
    'a' => string 'administrator'); 
} 
} 

그런 다음 내가 좋아하는 그것을 사용 : 내 공통 데이터를 저장하는 클래스, 같은 것을 만들어 그것을 할

$ 유저 유형 = GlobalData에 :: getUserTypes를(); echo $ userType [USER_TYPE_CUSTOMER]; // 고객의 사용자 유형을 표시하려면

yii extension that let's you create enums (시간을 절약하기 위해 내가 말한 것처럼 작동하지만) 체크 아웃해야합니다.

희망이 도움이 될 것입니다, 나는 이것이 당신이 원하는 것임을 확신하지 못합니다.

+2

나는 비슷한 것을한다. 그러나 사용자 유형의 경우,'User' 모델에서'optsType()'또는'types()'정적 메소드를 생성합니다. –

+0

예, 귀하의 의견은 모든 모델 관련 데이터를 모델에 보관하는 방법입니다. – Skatox

+1

괜찮습니다. 그러나 5.1.6과 같은 구 버전의 PHP에서는 다음과 같은 요소를 얻을 수있는 방법이 없습니다. GlobalData :: getUserTypes() [ 'f'] 그리고 한동안 배열 요소를 직접 가져 오는 것이 매우 중요합니다. 예를 들어 cgridview에서 사용자 유형의 값은 나중에 평가 될 문자열이므로 하나의 명령으로 가져올 수 없습니다. – HPM

관련 문제