想象一下,我有一個名爲「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。