Wie verwende ich dasselbe Entitätsfeld in mehreren Entitäten?
P粉674999420
P粉674999420 2023-09-11 22:06:11
0
1
489

Was ist der beste Weg, um in vielen Entitäten die gleichen Entitätsfelder zu haben? „Verwandte Entitäten“ werden beispielsweise in 8 Tabellen angezeigt.

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

RelatedEntity in „Benutzer“ ist wie ein übergeordnetes Feld für andere. Gibt es eine Möglichkeit, sie einander zuzuordnen, um die Abfrage zu vereinfachen?

Ich habe OneToOne ausprobiert, aber jedes Mal werden neue Benutzer hinzugefügt, aber das muss ich nicht tun.

P粉674999420
P粉674999420

Antworte allen(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
{
}
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage