如何在多個實體中使用相同的實體欄位?
P粉674999420
P粉674999420 2023-09-11 22:06:11
0
1
354

在許多實體中擁有相同實體欄位的最佳方式是什麼? 例如,「相關實體」將出現在 8 個表中。

class User { #[ORM\Column(length: 255)] private ?string $relatedEntity = null; }
class User2 { #[ORM\Column(length: 255)] private ?string $relatedEntity = null; }

「User」中的RelatedEntity 就像其他人的父字段。有什麼方法可以將它們相互映射以使查詢更簡單嗎?

我嘗試過 OneToOne,但每次它都會新增用戶,但我不需要這樣做。

P粉674999420
P粉674999420

全部回覆 (1)
P粉215292716

您有幾個選擇,您可以使用特徵 a> 或使用抽象類別。就像 @LBA 在他的回答中所說,如果您的實體有許多共同點並且只有一些差異,您可能需要研究繼承映射

特徵範例:

trait RelatedEntityTrait { #[ORM\Column(length: 255)] private ?string $relatedEntity = null; public function getRelatedEntity(): ?string { return $this->relatedEntity; } public function setRelatedEntity(?string $relatedEntity): void { $this->relatedEntity = $relatedEntity; } } class User { use RelatedEntityTrait; } class User2 { use RelatedEntityTrait; }

抽象類別範例:

abstract class BaseUser { #[ORM\Column(length: 255)] private ?string $relatedEntity = null; public function getRelatedEntity(): ?string { return $this->relatedEntity; } public function setRelatedEntity(?string $relatedEntity): void { $this->relatedEntity = $relatedEntity; } } class User extends BaseUser { } class User2 extends BaseUser { }
    最新下載
    更多>
    網站特效
    網站源碼
    網站素材
    前端模板
    關於我們 免責聲明 Sitemap
    PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!