IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

récupérer les infos d'un champ d'une entité avec findBy


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2019
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2019
    Messages : 61
    Par défaut récupérer les infos d'un champ d'une entité avec findBy
    Bonjour à tous,
    Tout d'abord merci pour vos futures réponses.

    Ce que je voudrai, c'est trier une liste en fonction d'un certain champ.

    voilà mon entité:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
     
    class Identifiants
    {
        /**
         * @ORM\Id()
         * @ORM\GeneratedValue()
         * @ORM\Column(type="integer")
         */
        private $id;
     
        /**
         * @ORM\ManyToOne(targetEntity="App\Entity\User", inversedBy="ficheEnvoyee", fetch="EAGER")
         * @ORM\JoinColumn(nullable=false)
         */
        private $User;
     
        /**
         * @ORM\ManyToOne(targetEntity="App\Entity\FicheNC", inversedBy="userRenseigne", fetch="EAGER")
         * @ORM\JoinColumn(nullable=false)
         */
        private $FicheNC;
     
        /**
         * @ORM\Column(type="string", length=255, nullable=true)
         */
        private $Statut;
     
        public function getId(): ?int
        {
            return $this->id;
        }
     
        public function getUserFiche(): ?User
        {
            return $this->User;
        }
     
        public function setUserFiche(?User $User): self
        {
            $this->User = $User;
     
            return $this;
        }
     
        public function getFicheNC(): ?FicheNC
        {
            return $this->FicheNC;
        }
     
        public function setFicheNCUser(?FicheNC $FicheNC): self
        {
            $this->FicheNC = $FicheNC;
     
            return $this;
        }
     
        public function getStatut(): ?string
        {
            return $this->Statut;
        }
     
        public function setStatut(?string $Statut): self
        {
            $this->Statut = $Statut;
     
            return $this;
        }
    }
    Je voudrai récupérer le FicheNC et ensuite avoir accès aux champs de FicheNC qui est cette entité:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    class FicheNC
    {
        /**
         * @ORM\Id()
         * @ORM\GeneratedValue()
         * @ORM\Column(type="integer")
         */
        private $id;
     
     
        /**
         * @ORM\Column(type="string", length=255)
         */
        private $date;
     
        /**
         * @ORM\ManyToOne(targetEntity="App\Entity\User", inversedBy="ficheNC")
         * @ORM\JoinColumn(nullable=true)
         */
        private $user;
     
        /**
         * @ORM\OneToMany(targetEntity="App\Entity\Identifiants", mappedBy="FicheNC")
         */
        private $userRenseigne;
     
     
        public function __construct()
        {
            $this->userRenseigne = new ArrayCollection();
        }
     
     
     
        public function getId(): ?int
        {
            return $this->id;
        }
     
        public function getDate(): ?string
        {
            return $this->date;
        }
     
        public function setDate(string $date): self
        {
            $this->date = $date;
     
            return $this;
        }
     
     
        public function getUser(): ?User
        {
            return $this->user;
        }
     
        public function setUser(?User $user): self
        {
            $this->user = $user;
     
            return $this;
        }
     
        /**
         * @return Collection|Identifiants[]
         */
        public function getUserRenseigne(): Collection
        {
            return $this->userRenseigne; //retourne la liste des identifiants liés à la fiche
        }
     
        public function addUserRenseigne(Identifiants $userRenseigne): self
        {
            if (!$this->userRenseigne->contains($userRenseigne)) {
                $this->userRenseigne[] = $userRenseigne;
                $userRenseigne->setFicheNCUser($this); //à changer si erreur
            }
     
            return $this;
        }
     
        public function removeUserRenseigne(Identifiants $userRenseigne): self
        {
            if ($this->userRenseigne->contains($userRenseigne)) {
                $this->userRenseigne->removeElement($userRenseigne);
                // set the owning side to null (unless already changed)
                if ($userRenseigne->getFicheNC() === $this) {
                    $userRenseigne->setFicheNCUser(null);//a chager si erreur
                }
            }
     
            return $this;
        }
     
    }

    Voici un exemple de ce que je veux faire, cet exemple est avec le champ Statut de l'entité Identifiant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     $listeFichesEnvoyeesStatut=$this
                ->getDoctrine()
                ->getRepository(Identifiants::class)
                ->findBy(
                    ['User'=>$utilisateur], //récupere les identifiants de l'utilisateur connecté uniquement récupéré avec  $utilisateur=$this->getUser();
                    ['Statut'=>'desc']
                );
    Cependant j'aimerai le faire également avec le champ date de l'entité FicheNC. Pour cela il faudrait que à la place de là où il y a 'Statut' ici: ['Statut'=>'desc'] je puisse faire une chemin qui, de l'identifiant trouve la fiche et de la fiche trouve la date. Je n'ai cependant aucune idée de la syntaxe pour trouver ce chemin à cet endroit.

    Merci à tous pour vos réponses !

  2. #2
    Membre Expert

    Homme Profil pro
    développeur
    Inscrit en
    Octobre 2013
    Messages
    1 581
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : développeur

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 581
    Par défaut
    Salut,

    Tu dois utiliser un join https://www.doctrine-project.org/pro...-language.html dans ton where après le join tu utilises ta condition.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 30/09/2014, 14h10
  2. Réponses: 2
    Dernier message: 27/08/2012, 16h07
  3. Récupérer les infos des champs d'une table Firebird
    Par neodelphi2007 dans le forum SQL
    Réponses: 3
    Dernier message: 22/04/2008, 12h48
  4. Récupérer les infos d'un formulaire dans une table
    Par Le_Shadock dans le forum WinDev
    Réponses: 9
    Dernier message: 18/04/2008, 09h26
  5. Récupérer les infos d'une colonne de type DataSet
    Par Zugg dans le forum Bases de données
    Réponses: 2
    Dernier message: 01/02/2006, 14h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo