Bonjour,
Voila je rencontre un petit problème avec mon code.
Ce que je veux
J'ai une entité : Users qui contient la liste de mes utilisateurs
J'ai une entité : Schools qui contient la liste des coles de mon village
J'ai une relation entre les deux en ManyToMany avec la table générée automatiquement : users_schools
Côté Directeur, je veux que celui-ci puisse lister la liste des utilisateurs qui se trouvent dans son école
Ce que je fais
La méthode dans mon controller Director
/**
* @Route("/prof-list", name="professor_list")
*/
public function listprof(UsersRepository $usersRepo, SchoolsRepository $schoolRepo) {
// On récupère l'ID de l'user connecté
$recupuserid = $this->getUser()->getId();
// On cherche à filtrer l'école concernée
$school = $schoolRepo->findOneBy([
'director' => $recupuserid
]);
// On récupère l'ID de l'école concernée
$B = $school->getId();
// On requête sur l'entité user
$QB = $usersRepo->createQueryBuilder('u')
->where('u.schools = :schools')
->setParameter('schools', $B);
$result = $QB->getQuery()->getResult();
return $this->render('director/proflist.html.twig', [
'users' => $result
]);
}
Ma vue TWIG
{% extends 'base.html.twig' %}
{% block body %}
<h1 class="h3 mb-4 text-gray-800">Liste des professeurs de votre école</h1>
<div class="card mb-12">
<div class="card-header"></div>
<div class="card-body">
<div class="table-responsive">
<table class="table table-bordered" id="dataTable" width="100%" cellspacing="0">
<thead>
<tr>
<th>#</th>
<th>Nom</th>
<th>Prénom</th>
<th>Edition</th>
</tr>
</thead>
<tfoot>
<tr>
<th>#</th>
<th>Nom</th>
<th>Prénom</th>
<th>Edition</th>
</tr>
</tfoot>
<tbody>
{% for user in users %}
<tr>
<td>{{ user.id }}</td>
<td>{{ user.lastname }}</td>
<td>{{ user.firstname }}</td>
<td>EDIT</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>
</div>
{% endblock %}
Ce que j'obtiens
Une belle erreur que je ne comprends pas !
Merci par avance pour votre aide :)
Grub