我使用Symfony2與Doctrine。我有噸的實體(表),並在這裏就是我試圖完成:默認條件和列與Doctrine
問題
每個實體都需要有2個字段(列),例如from_date
和to_date
默認。 假設我有在product.orm.yml
文件中定義了以下實體:
Some\Random\Namespace\Product:
type: entity
table: product
id:
id:
type: integer
generator:
strategy: AUTO
fields:
name:
type: string
length: 255
description:
type: text
price:
type: float
我會跑doctrine:schema:update
後所創建的表應該已經有from_date
和to_date
列。 現在,可以說我正試圖從數據庫中獲取所有產品。我會這樣做:
$products = $this->getDoctrine()->getRepository('SomeRandomBundle:Product')->findAll();
這通常會從數據庫中獲取所有產品。我想這樣做,是爲了只獲取產品,其中from_date
< = some_date
< = to_date
。將有一個功能getSomeDate()
,該原則將不得不按順序調用,以獲得值some_date
。 不,它也應該寫在DQL或者自定義查詢工作,我做這樣的事情
$products = $this->getDoctrine()->getRepository('SomeRandomBundle:Product')->findByPrice(20);
但是,它不應該影響情況下,當我嘗試它使用find方法PK來獲取實體或自定義DQL查詢。
額外的細節
,也將一些實體,這將不遵循上述規則。
我知道我可以在每個實體中創建from_date
和to_date
+執行檢查,但是由於應用程序中會有成千上萬的查詢,它只會使代碼變得不可讀。
目標
上述的目標是讓用戶看到了應用程序的狀態,因爲它是,在過去的任何地方。如果你知道一種可以實現相同目標的不同方法,它也會很棒。
謝謝你的時間!
這看起來不錯。我還不知道的唯一事情是如何爲所有實體擴展存儲庫類?順便說一句,對於遲到的回覆感到抱歉。我的筆記本電腦壞了,所以必須換新的。 –