1

我似乎找不到将父记录对象转换为子记录对象的正确方法。

我的模型如下所示:

ModelA:
  columns:
    col_a:integer

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

我想做这样的事情:

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

基本上我需要将所有字段和关系从实例 A 复制到实例 B,而不必对字段和关系进行硬编码。

是否可以?

4

1 回答 1

2

IIRC 在 php 中没有对象转换的对象(虽然有一些 hacky 解决方案)。您可以将模型对象的所有属性复制到另一个模型对象,例如:

$b = new ModelB();
$b->fromArray($instanceA->toArray());
$b->setColB('yepp')->save();
于 2013-03-21T20:42:07.947 回答