2013-03-21 2 views
1

부모 레코드 개체를 자식 레코드 개체로 캐스팅하는 적절한 방법을 찾지 못하는 것 같습니다.concate table 상속을 사용할 때 상위 레코드 개체를 하위 레코드로 캐스팅 할 수 있습니까?

내 모델은 다음과 같이 :

ModelA: 
    columns: 
    col_a:integer 

ModelB: 
    inheritance: 
    type:    concrete 
    extends:   ModelA 
    columns: 
    col_b:integer 

나는 같은 것을 할 싶습니다

$instanceB = (ModelB) $instanceA->copy(); 
$instanceB->setColB('whatever'); 
$instanceB->save(); 

은 기본적으로 내가 B 인스턴스에 예 A에서 모든 필드와 관계를 복사해야 필드와 관계를 하드 코딩하지 않아도됩니다.

가능합니까?

답변

2

IIRC PHP에서 객체 주조 할 개체가 없습니다 (there are 일부 해킹 된 솔루션). 모델 개체의 모든 속성을 다른 개체로 복사 할 수 있습니다. like :

$b = new ModelB(); 
$b->fromArray($instanceA->toArray()); 
$b->setColB('yepp')->save(); 
+0

정확히 내가 무엇을 찾고 있었습니까! 감사! – sanya