我有一個名爲「Order」的Doctrine2實體,它有幾個狀態屬性。 「允許狀態」存儲在不同的實體中,因此爲這些實體定義了ManyToOne關係。ManyToOne關係屬性的Doctrine2實體默認值
/**
* @ORM\Entity()
*/
class Order extends AbstractEntity {
// ...
/**
* @ORM\ManyToOne(targetEntity="Status")
* @ORM\JoinColumn(onDelete="NO ACTION", nullable=false)
*/
protected $status;
/** @ORM\Column(nullable=true) */
protected $stringProperty = "default value";
}
當創建訂單對象的新實例時,我需要將此狀態屬性設置爲默認值。
對於「非關係」屬性,我可以簡單地將它設置爲像上面的$ stringProperty。但如何爲關係做呢?
- 由於Doctrine2會投訴,我無法將該值設置爲相關記錄的ID。
- 這很好,如果配置的默認是「參考」的狀態實體。可用狀態'是固定的,並且不會改變(經常)。
如何配置實體以配置正確的默認關係。
最好不要在監聽器中持續存在,因爲在此之前可能會請求狀態。
簡單但非常有效的解決方案。爲什麼我沒有想到這一點。我正在考慮創建一個單獨的服務,但這感覺很奇怪和矯枉過正。這保持了創建新的邏輯並找到現有的實體。 – DoppyNL 2014-10-03 08:54:54
您是否恰好對訂單內部需要更改狀態(到另一個實體)的情況有所建議? – DoppyNL 2014-10-03 08:55:42