Doctrine2は、遅延読み込みのためにProxyオブジェクトに魔法を追加しているようです。結果が不正確になり、原因がわかりません。
これが私のクラスモデルです:
クラス「RedProduct」は、インターフェース「BaseProduct」を実装する抽象クラス「Product」を継承します。
抽象クラスProductは主キーを保持します:
abstract class Product implements BaseProduct {
/** @Id @Column (type="integer", name="ID") @GeneratedValue */
protected $id;
public function getId() {
return $this->id;
}
}
RedProductに、IDに文字「R」を付加してから返すようにします。
class RedProduct extends Product {
public function getId() {
return 'R' . $this->id;
}
}
ただし、プロキシクラスでは、getId()メソッド(およびgetId()メソッドのみ)が次のように変更されています。
public function getId()
{
if ($this->__isInitialized__ === false) {
return $this->_identifier["id"];
}
$this->__load();
return parent::getId();
}