2011-11-15 23 views
3

爲Doctrine對象/實體創建自定義屬性/函數的最佳做法是什麼?自定義對象/實體屬性/函數

例如在Symfony1.4 /學說1.2我的方法到User

public function getName() 
{ 
    return $this->getFirstName().' '.$this->getLastName(); 
} 

這將合併添加到域和返回值 - 自定義屬性/功能。

現在在哪裏做我在Symfony2/Doctrine 2 - 實體類中做到這一點?可以將自定義方法放在那裏嗎?我正在使用EntityRepositories進行自定義方法來查找數據...但不確定是否需要爲對象執行此操作。

我已經搜索了很高和不能在文檔(包括Symfony和Doctrine)中找到與此有關的任何東西....請讓我擺脫我的痛苦!

回答

3

一個Doctrine實體實際上只是一個普通的舊的PHP對象,並具有關於如何將對象的部分或全部屬性保存到數據庫的附加映射信息。你可以添加任何你想要的類,並不是所有的屬性或方法都必須映射到數據庫中的一個字段。

爲了您的具體關注,您的getName()方法就最好的做法就好了。請注意,對於更新這些字段,您必須使用setFirstName()setLastName()方法,或者編寫一個在空間上爆炸並更新單個字段的方法。

+0

我只是覺得很奇怪,在Symfony1.4/Doctrine 1.2的文檔中給出了例子 - 即改變模型類 - 但沒有明確指示如何在Symfony2/Doctrine 2上做到這一點 - 我有實際上按照你的建議實施 - 只是想檢查我是否正確地做了......謝謝你的回答 – ManseUK

+0

這就是我用於計算結果的某些領域。奇怪的是,文件沒有提到它,我試過它,只是因爲它對我來說很有意義,它工作。 – renoirb