*/
- public function getFormationsSuivies(): Collection
+ public function getFormationsInscrits(): Collection
{
- return $this->formationsSuivies;
+ return $this->formationsInscrits;
}
- public function addFormationsSuivie(atelier $formationsSuivie): self
+ public function addFormationsInscrit(FormationUser $formationsInscrit): self
{
- if (!$this->formationsSuivies->contains($formationsSuivie)) {
- $this->formationsSuivies->add($formationsSuivie);
+ if (!$this->formationsInscrits->contains($formationsInscrit)) {
+ $this->formationsInscrits->add($formationsInscrit);
+ $formationsInscrit->setEleve($this);
}
return $this;
}
- public function removeFormationsSuivie(atelier $formationsSuivie): self
+ public function removeFormationsInscrit(FormationUser $formationsInscrit): self
{
- $this->formationsSuivies->removeElement($formationsSuivie);
+ if ($this->formationsInscrits->removeElement($formationsInscrit)) {
+ // set the owning side to null (unless already changed)
+ if ($formationsInscrit->getEleve() === $this) {
+ $formationsInscrit->setEleve(null);
+ }
+ }
return $this;
}
diff --git a/src/Repository/AtelierRepository.php b/src/Repository/AtelierRepository.php
index 079567b..3dafe19 100644
--- a/src/Repository/AtelierRepository.php
+++ b/src/Repository/AtelierRepository.php
@@ -3,7 +3,9 @@
namespace App\Repository;
use App\Entity\Atelier;
+use App\Entity\User;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
+use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Persistence\ManagerRegistry;
/**
@@ -39,6 +41,16 @@ class AtelierRepository extends ServiceEntityRepository
}
}
+ public function getFormationsSuivies(User $user): ArrayCollection
+ {
+ return new ArrayCollection($this->createQueryBuilder('a')
+ ->innerJoin('\App\Entity\FormationUser', 'fu', 'WITH', 'fu.atelier = a')
+ ->where('fu.eleve = :eleve')
+ ->setParameter('eleve', $user)
+ ->getQuery()
+ ->execute());
+ }
+
// /**
// * @return Atelier[] Returns an array of Atelier objects
// */
diff --git a/src/Repository/FormationUserRepository.php b/src/Repository/FormationUserRepository.php
new file mode 100644
index 0000000..7d421b7
--- /dev/null
+++ b/src/Repository/FormationUserRepository.php
@@ -0,0 +1,66 @@
+
+ *
+ * @method FormationUser|null find($id, $lockMode = null, $lockVersion = null)
+ * @method FormationUser|null findOneBy(array $criteria, array $orderBy = null)
+ * @method FormationUser[] findAll()
+ * @method FormationUser[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
+ */
+class FormationUserRepository extends ServiceEntityRepository
+{
+ public function __construct(ManagerRegistry $registry)
+ {
+ parent::__construct($registry, FormationUser::class);
+ }
+
+ public function save(FormationUser $entity, bool $flush = false): void
+ {
+ $this->getEntityManager()->persist($entity);
+
+ if ($flush) {
+ $this->getEntityManager()->flush();
+ }
+ }
+
+ public function remove(FormationUser $entity, bool $flush = false): void
+ {
+ $this->getEntityManager()->remove($entity);
+
+ if ($flush) {
+ $this->getEntityManager()->flush();
+ }
+ }
+
+// /**
+// * @return FormationUser[] Returns an array of FormationUser objects
+// */
+// public function findByExampleField($value): array
+// {
+// return $this->createQueryBuilder('f')
+// ->andWhere('f.exampleField = :val')
+// ->setParameter('val', $value)
+// ->orderBy('f.id', 'ASC')
+// ->setMaxResults(10)
+// ->getQuery()
+// ->getResult()
+// ;
+// }
+
+// public function findOneBySomeField($value): ?FormationUser
+// {
+// return $this->createQueryBuilder('f')
+// ->andWhere('f.exampleField = :val')
+// ->setParameter('val', $value)
+// ->getQuery()
+// ->getOneOrNullResult()
+// ;
+// }
+}
diff --git a/src/Repository/UserRepository.php b/src/Repository/UserRepository.php
index 9b60483..32c20fd 100644
--- a/src/Repository/UserRepository.php
+++ b/src/Repository/UserRepository.php
@@ -2,8 +2,11 @@
namespace App\Repository;
+use App\Entity\Atelier;
use App\Entity\User;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
+use Doctrine\Common\Collections\ArrayCollection;
+use Doctrine\ORM\Query\Expr\Join;
use Doctrine\Persistence\ManagerRegistry;
use Symfony\Component\Security\Core\Exception\UnsupportedUserException;
use Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface;
@@ -24,15 +27,6 @@ class UserRepository extends ServiceEntityRepository implements PasswordUpgrader
parent::__construct($registry, User::class);
}
- public function save(User $entity, bool $flush = false): void
- {
- $this->getEntityManager()->persist($entity);
-
- if ($flush) {
- $this->getEntityManager()->flush();
- }
- }
-
public function remove(User $entity, bool $flush = false): void
{
$this->getEntityManager()->remove($entity);
@@ -56,6 +50,25 @@ class UserRepository extends ServiceEntityRepository implements PasswordUpgrader
$this->save($user, true);
}
+ public function save(User $entity, bool $flush = false): void
+ {
+ $this->getEntityManager()->persist($entity);
+
+ if ($flush) {
+ $this->getEntityManager()->flush();
+ }
+ }
+
+ public function getEleves(Atelier $atelier) : ArrayCollection
+ {
+ return new ArrayCollection($this->createQueryBuilder('e')
+ ->innerJoin('\App\Entity\FormationUser', 'fu', 'WITH', 'fu.eleve = e')
+ ->where('fu.atelier = :atelier')
+ ->setParameter('atelier', $atelier)
+ ->getQuery()
+ ->execute());
+ }
+
// /**
// * @return User[] Returns an array of User objects
// */
diff --git a/templates/atelier/show.html.twig b/templates/atelier/show.html.twig
index 773a786..272ef0c 100644
--- a/templates/atelier/show.html.twig
+++ b/templates/atelier/show.html.twig
@@ -27,7 +27,7 @@
Elèves inscrits |
- {% for eleve in atelier.eleves %}
+ {% for eleve in eleves %}
- {{ eleve.prenom }} {{ eleve.nom }} - {{ eleve.email }}
{% endfor %}
|