0

I'm trying to fetch results from mysql table
I'm using symfony3 and of course doctrine 2
I have 2 entity Client.php

<?php

namespace AppBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Doctrine\ORM\Mapping\ManyToMany;
use Doctrine\ORM\Mapping\JoinTable;
use Doctrine\ORM\Mapping\JoinColumn;

/**
 * Client
 *
 * @ORM\Table(name="client")
 * @ORM\Entity(repositoryClass="AppBundle\Repository\ClientRepository")
 */
class Client
{
    /**
     * @var int
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @var int
     *
     * @ORM\Column(name="cin", type="integer")
     */
    private $cin;

    /**
    * @ManyToMany(targetEntity="
    * @JoinTable(name="listesouhait",
    * joinColumns={@JoinColumn(name="utilisateur_id", 
    referencedColumnName="id")},
     * inverseJoinColumns={@JoinColumn(name="evenement_id", 
    referencedColumnName="id")}
     *      )
     */
    private $evenements;

    public function __construct() {
        $this->groups = new \Doctrine\Common\Collections\ArrayCollection();
    }

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

    /**
     * Set cin
     *
     * @param integer $cin
     *
     * @return Client
     */
    public function setCin($cin)
    {
        $this->cin = $cin;

        return $this;
    }

    /**
     * Get cin
     *
     * @return int
     */
    public function getCin()
    {
        return $this->cin;
    }

    /**
     * Add evenement
     *
     * @param \AppBundle\Entity\Evenement $evenement
     *
     * @return Client
     */
    public function addEvenement(\AppBundle\Entity\Evenement $evenement)
    {
        $this->evenements[] = $evenement;

        return $this;
    }

    /**
     * Remove evenement
     *
     * @param \AppBundle\Entity\Evenement $evenement
     */
    public function removeEvenement(\AppBundle\Entity\Evenement $evenement)
    {
        $this->evenements->removeElement($evenement);
    }

    /**
     * Get evenements
     *
     * @return \Doctrine\Common\Collections\Collection
     */
    public function getEvenements()
    {
        return $this->evenements;
    }
}

and Evenement.php

<?php

namespace AppBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Doctrine\ORM\Mapping\ManyToOne;
use Doctrine\ORM\Mapping\JoinColumn;

/**
* Evenement
*
* @ORM\Table(name="evenement")
* @ORM\Entity(repositoryClass="AppBundle\Repository\EvenementRepository")
*/
class Evenement
{
    /**
     * @var int
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;
    //all attributes

when executing php bin\console doctrine:schema:update --force
image source
now everything is fine
but i can't find a clear code to insert in my controllerAction to fetch all the records in table listeshouhait (which is being generated automatically) because the table listeshouhait is not a real entity
also to mention that my repository are empty
i've heard of DQL in Repository and it might be helpful
Can SO help me please ??

Wajdi Makhlouf
  • 93
  • 2
  • 3
  • 9

1 Answers1

0

To get the list of events attached to a client, in your controller :

$em = $this->getDoctrine()->getManager();

// Récupérer le client qui a l'id = 1
$item = $em->getRepository('AppBundle:Client')->findOneById(1);

// Liste des evenements 
$events = $item->getEvenements();
foreach ($events as $event)
{
    echo $event->getId() .'<br>';

}
die;
Yassine
  • 26
  • 3