문제

I can't seem to find a proper way to cast a parent record object to a child record object.

My models look like this:

ModelA:
  columns:
    col_a:integer

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

I'd like to do something like this:

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

Basically I need to copy all fields and relations in from instance A to instance B without having to hardcode the fields and relations.

Is it possible?

도움이 되었습니까?

해결책

IIRC there is no object to object casting in php (there are some hacky solutions though). You can copy all properties of a model object to an another e.g. like this:

$b = new ModelB();
$b->fromArray($instanceA->toArray());
$b->setColB('yepp')->save();
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top