2012-12-20 4 views
0

입력 된 모델에 Yii에 지원 기능이 내장되어 있습니까? 예를 들어, 모든 제품 활성 레코드 모델을 확장하는 손전등, 잠금 및 폴더라는 클래스가 있고이를 Yii 관계를 통해 일반 클래스가 아닌 입력 된 클래스로 만들고 싶다면 어떻게해야합니까?유형에 따라 Yii 모델 클래스 가져 오기

현재 저는 __call을 덮어 쓰고 있습니다. 나는 그것에 대해 정말 행복하지 않습니다. 나는 이것이 아마도 일반적인 필요라고 생각합니다.

답변

2

single table inheritance이라고합니다. :-)이 잘 정말 작동

// protected/models/Product.php 
protected function instantiate($attributes){ 
    switch($attributes['type']){ 
     case 'flashlight': 
      $class='Flashlight'; 
     break; 
     case 'lock': 
      $class='Lock'; 
     break; 
     case 'folder': 
      $class='Folder'; 
     break; 
     default: 
      $class=get_class($this); 
    } 
    $model=new $class(null); 
    return $model; 
} 
+0

가 동의 :

은 기본적으로 당신은 당신이 필요로하는 클래스를 반환하는 모델의 instantiate 방법을 덮어 – acorncom