Comment utiliser le même champ d'entité dans plusieurs entités ?
P粉674999420
P粉674999420 2023-09-11 22:06:11
0
1
413

Quelle est la meilleure façon d'avoir les mêmes champs d'entité dans plusieurs entités ? Par exemple, « Entités associées » apparaîtra dans 8 tableaux.

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

RelatedEntity dans "User" est comme le champ parent pour les autres. Existe-t-il un moyen de les mapper les uns aux autres pour simplifier les requêtes ?

J'ai essayé OneToOne mais à chaque fois, il ajoute de nouveaux utilisateurs mais je n'ai pas besoin de le faire.

P粉674999420
P粉674999420

répondre à tous(1)
P粉215292716

Vous avez quelques options, vous pouvez utiliser traits a> ou utiliser cours abstraits. Comme @LBA l'a dit dans sa réponse, si vos entités ont beaucoup de points communs et seulement quelques différences, vous voudrez peut-être vous pencher sur la cartographie de l'héritage.

Exemple de fonctionnalité :

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;
}

Exemple de classe abstraite :

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
{
}
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!