處理File
實體的最佳方式是什麼,您有多個ManyToOne
關係。Symfony:處理文件實體
比方說,我有5個實體與File
實體有OneToMany
關係。
File.php
/**
* @ORM\ManyToOne(targetEntity="Entity1", inversedBy="files")
* @ORM\JoinColumn(name="entity1_id", referencedColumnName="id", nullable=true, onDelete="CASCADE")
*/
private $entity1;
/**
* @ORM\ManyToOne(targetEntity="Entity2", inversedBy="files")
* @ORM\JoinColumn(name="entity2_id", referencedColumnName="id", nullable=true, onDelete="CASCADE")
*/
private $entity2;
and so one....
Entity1.php
/**
* @ORM\OneToMany(targetEntity="File", mappedBy="entity1" , cascade={"persist", "remove"}, orphanRemoval=true)
*/
protected $images;
對上述的偉大的事情是getter和setter設置,我能堅持,並自動保存到數據庫中。關係已設置,我可以通過調用$entity1->getFiles()
加載文件。
我不喜歡的是每當我想添加另一個具有OneToMany
和File
的實體時,它會在數據庫中創建一個新列,因此我可能會有10列從其他實體引用Ids。
我想什麼來實現的節省類在class
領域的實體,並保存記錄的id
在id
領域,也不知何故仍允許繼續存在,並收集保存工作。
entity_id | class
------------------------------------------
2 | ProjectBundle/Entity/Entity1
3 | ProjectBundle/Entity/Entity2
謝謝Genti。我想通了,並使用繼承映射 – user742736
當我嘗試使用findAll或find函數時,是否有原因讓我無法再獲得任何結果? ''result = $ em-> getRespository('File-> findAll()'返回一個空的數組 – user742736
當'entityType'列字段爲空時,它不會返回任何記錄嗎?有沒有辦法讓它返回結果? – user742736