2010-12-15 8 views

答えて

7

次のように試してみてください。

0

DoctrineRecord.__callメソッドの中にはメソッドを呼び出そうとするcall_user_func_arrayが使用されています。

getPropertyをオーバーライドしているので、それは子クラス定義を呼び出しているので、それ自体を呼び出しています。また、

public function getProperty() 
{ 
    $property = $this->_get('property'); 
    //the following line is never reached 
    return $property; 
} 

をカスタムミューテータとアクセサについて読み:

+0

だから不可能ですか? – Dziamid

+0

'parent :: getProperty()'メソッドが '__call'メソッドを使用している場合、' yes 'をオーバーライドすると 'parent :: getProperty()'が子メソッドを何度も呼び出すようになります。 これを行うには、親クラスのgetPropertyメソッドの機能を子クラスに複製する必要があると思います。 しかし、あなたの子クラスの 'getProperty'メソッドがあなたが上に示したように単純であるならば、それをまったく上書きする必要はありません。親のバージョンは、あなたが望むものをやり遂げます。 – bejonbee

+0

いいえ、私はいくつかの論理を適用しようとしていました。ご意見ありがとうございました。直接_get()メソッドを呼び出すことで解決しました:$ property = $ this - > _ get( 'Property') – Dziamid