Jointure entre 3 tables dont une de la récupération de variable de session
voilà encore!
Débutant sur Symfony 2, et sur un gros projet, je bloque presqu'à chaque étape.
En fait j'ai par exemple 3 tables "Ecole" , "Perso", et "user" de FOSUserBundle que j'ai surchargé et nommé "Utilisateurs" .
A la connexion d'un utilisateur je dois afficher uniquement les données qui concernent sont "Ecole" et toutes les opérations qu'il aurait à réaliser doivent être uniquement liées à celle-ci.
"Utilisateurs" ManyToOne avec "Ecole"
"Perso" ManyToOne avec "Ecole"
ce que j'ai essayé de faire est presque ridicule.
Si quelqu'un a déjà un truc pareil qui puisse m'inspirer.
Je plante totalement au niveau de la requête niveau jointure et paramètres.
je ss Vrmt calé la depuis 3 jrs svp sortez moi de la
PersonnelRepository puis PersonnelController en considérant les relations sus-mentionnées
# <?php
namespace stage\AutoBundle\Entity;
/**
* PersonnelRepository
*
* This class was generated by the Doctrine ORM. Add your own custom
* repository methods below.
*/
use Doctrine\ORM\EntityRepository;
class PersonnelRepository extends \Doctrine\ORM\EntityRepository
{
Public function AffichePersonnel($id)
{
$query = $this->_em->createQuery('SELECT p.nomPersonnel, p.prenomPersonnel, p.fonctionPersonnel FROM stageAutoBundle: Personnel p, stageUtilisateursBundle:Utilisateurs u
JOIN p.AutoEcole a
WHERE p.AutoEcole = :id AND u.AutoEcole= :id');
// Utilisation de getSingleResult car la requête ne doit retourner qu'un seul résultat
$query->setParameter('stageAutoBundle: Personnel' , array('id'=>$id));
return $query->getResult();
}
}
#
et la classe PersonnelController
#
<?php
/**
* Personnel controller.
*
*/
class PersonnelController extends Controller
{
/**
* Lists all Personnel entities.
*
*/
public function indexAction()
{
$session= $this->getRequest()->getSession();
$autoecole= $session->get('autoecole');
$repository = $this
->getDoctrine()
->getManager()
->getRepository('stageAutoBundle: Personnel')
;
$listePersonnel = $repository->AffichePersonnel($autoecole);
return $this->render('stageAutoBundle: Personnel:index.html.twig', array(
'Personnel'=>$listePersonnel
));
}
}
#
Désolé pour la qualité du poste, je me sers d'un smartphone dc...
Merci de consacrer qq minutes à mon souci