Bonjour,
J'essaie de récupérer les id d'un attribut ManyToOne en objet et sa me récupère uste la liste des objets qu'est ce qui me manque?

Entité 1 :

<?php 

namespace Ams\DistributionBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * Entité Pour les Abonnées de France Routage
 *
 * @ORM\Table(name="abonnees_france_routage")
 * @ORM\Entity(repositoryClass="Ams\DistributionBundle\Repository\AbonneesFRRepository")
 * @ORM\HasLifecycleCallbacks
 */

class AbonneesFR {

    /* Autres attributs au dessus */

    /**
     * @var \Ams\DistributionBundle\Entity\Reperage
     *
     * @ORM\ManyToOne(targetEntity="\Ams\DistributionBundle\Entity\Reperage")
     * @ORM\JoinColumn(name="reperage_id", referencedColumnName="id", nullable=false)
     */

    private $idReperage;

     /**
     * Get the value of idReperage
     */ 
    public function getIdReperage()
    {
        return $this->idReperage;
    }

    /**
     * Set the value of idReperage
     *
     * @return  self
     */ 
    public function setIdReperage($idReperage)
    {
        $this->idReperage = $idReperage;

        return $this;
    }
}

Entité 2:

<?php

namespace Ams\DistributionBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Doctrine\ORM\Mapping\Index;

/**
 * Details des Reperages

 * @ORM\Entity(repositoryClass="Ams\DistributionBundle\Repository\ReperageRepository")
 * @ORM\HasLifecycleCallbacks
 */
class Reperage
{
    /**
     * @var integer
     *
     * @ORM\Column(name="id", type="integer", nullable=false)
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="IDENTITY")
     */
    private $id;

    /*** Autres attributs en dessous ****/

    /**
     * Get id
     *
     * @return integer 
     */
    public function getId()
    {
        return $this->id;
    }

    public function setId($id)
    {
        $this->id = $id;

        return $this;
    }

/*** Autres méthodes en dessous ***/
}

mon code :

$abonneesFranceRoutage = $em->getRepository('AmsDistributionBundle:AbonneesFR')->findAll();

  foreach($abonneesFranceRoutage as $aAbonneesFR) {
           $tab1[] = $aAbonneesFR->getIdReperage();
  }
  var_dump($tab1)

Merci de vos futurs réponses

4 réponses


Balbert
Réponse acceptée

Hello

Tu as oublié d'ajouter getId()

$tab1[] = $aAbonneesFR->getIdReperage()->getId();

Salut,
tu peux aussi utiliser les relations oneToMany

Microse
Auteur

@Balbert je testerai demain merci et @kipik si je la met en oneToMany sa n'aurais pas de sens

Microse
Auteur

Sa marche niquel, merci @Balbert et @kipik aussi :)