2015-11-01 69 views
0

我有一些(Doctrine 2)具有相似字段的實體,例如foo,valuedatetime。我想利用這一點,並使用共享方法定義自定義FooEntityRepository如何抽象Doctrine 2實體字段?

自定義EntityRepository很容易創建,但是如何強制使用此存儲庫的實體具有foo,value,datetime字段?也許其中一個實體存儲的值不是foo,而是bar。我想預測這一點。

我可以定義一個與getFooFieldNamegetValueFieldName的接口,表示有問題的實體應該實現,但這是要走的路嗎?在這種情況下,我應該儘量讓存儲庫「評估」函數是否返回有效的字段名稱嗎?

回答

0

也許你可以定義自定義EntityRepository,然後通過自定義實體存儲庫爲抽象實體的每個子實體擴展它。然後,所有的實體都可以使用所有的共享方法。

+0

謝謝你的迴應。那麼,這種情況下的問題是EntityRepository不再是一般的了。像存儲庫中的getFooFieldName這樣的方法仍然需要運行時驗證。另外,我創建了實體和存儲庫之間的高度耦合,我認爲這不是有利的。 – user228395