想象一下,我有一个名为“item”的表格,其中有一个名为“price”的列。除了全价,我想获得的价格跨越12个月传播,即将派生字段添加到Doctrine_Record子类的最佳方式是什么?
class Item extends Doctrine_Record {
...
public function getMonthlyPrice() {
return $this->price/12;
}
}
现在,说我想有项目的行为就像每月价格只是另一列,而不是函数调用,例如,
$m = Doctrine_Core::getTable("Item")->find(1);
echo $m->price; //prints 120
echo $m->monthlyPrice; //prints 10
我的第一个直觉是重写__get()方法。在教义中有没有更好或更标准的方法来做到这一点?
奖金的问题:
有一些非常聪明的办法,我可以钻机的对象,所以当我做
var_dump($m->getData())
我看到
array
'price' => 120
'monthlyPrice' => 10
这会很漂亮FTY。