在我的项目中,我的成员每个人都有不同的画廊。我正在寻找一种方法,允许我拥有与我的会员相关的所有陈列室。我在会员和陈列室之间有一对多关系。我不明白返回的错误,就像我的成员实体不希望在陈列室方法的路由中存在成员的 id 一样。我将转储放入代码中,这为我提供了所需的信息,因此我看不到它在哪里阻塞。你能帮我吗?我在 Symfony4 上
展厅控制器
#[Route('/membre/{id}/showroom', name: 'app_showroom_index', methods: ['GET'])]
public function index(int $id, MembreRepository $membreRepository): Response
{
// Récupérer le membre via son ID
$membre = $membreRepository->find($id);
if (!$membre) {
throw $this->createNotFoundException('Membre introuvable.');
}
// Afficher l'ID du membre avec dump()
dump($membre->getId()); // ou dump($id) pour afficher directement l'ID reçu dans l'argument
// Récupérer les showrooms associés au membre via la relation
$showrooms = $membre->getShowrooms();
dump($showrooms->first());
return $this->render('showroom/index.html.twig', [
'showrooms' => $showrooms,
]);
}
成员控制器:
class MembreController extends AbstractController
{
#[Route('/membre', name: 'app_membre_index', methods: ['GET'])]
public function index(MembreRepository $membreRepository): Response
{
$membres = $membreRepository->findAll();
return $this->render('membre/index.html.twig', [
'membres' => $membres,
]);
}
树枝成员/索引:
{% extends 'base.html.twig' %}
{% block title %}
Liste des membres
{% endblock %}
{% block body %}
<h1>Liste des membres</h1>
<table class="table">
<thead>
<tr>
<th>Id</th>
<th>email</th>
<th>roles</th>
</tr>
</thead>
<tbody>
{% for membre in membres %}
<tr>
<td>{{ membre.id }}</td>
<td>{{ membre.email }}</td>
{% for role in membre.roles %}
<td>{{ role }}</td>
<td><a href="{{ path('app_membre_show', {'id' : membre.id}) }}">
Voir la fiche du membre </a></td>
{{ dump(membre.id) }}
{{ dump('test') }} {# Vérifiez si 'test' s'affiche dans la barre de débogage #}
<td><a href="{{ path('app_showroom_index', {'membre_id': membre.id}) }}">Voir les showrooms</a></td>
{% endfor %}
</td>
</tr>
{% endfor %}
</tbody>
</table>
{% endblock %}
twig 展厅/索引:
{% extends 'base.html.twig' %}
{% block title %}Showroom index{% endblock %}
{% block body %}
<h1>Showroom index</h1>
<table class="table">
<thead>
<tr>
<th>Id</th>
<th>Description</th>
<th>Publiee</th>
<th>actions</th>
</tr>
</thead>
<tbody>
{% for showroom in showrooms %}
<tr>
<td>{{ showroom.id }}</td>
<td>{{ showroom.description }}</td>
<td>{{ showroom.publiee ? 'Yes' : 'No' }}</td>
<td>
<a href="{{ path('app_showroom_show', {'id': showroom.id}) }}">show</a>
<a href="{{ path('app_showroom_edit', {'id': showroom.id}) }}">edit</a>
</td>
</tr>
{% else %}
<tr>
<td colspan="4">no records found</td>
</tr>
{% endfor %}
</tbody>
</table>
<a href="{{ path('app_showroom_new') }}">Create new</a>
{% endblock %}
我尝试删除展厅索引路由中会员 ID 的依赖关系,但没有成功。
这条线
{{ path('app_showroom_index', {'membre_id': membre.id}) }}
应该是
{{ path('app_showroom_index', {'id': membre.id}) }}
因为
#[Route('/membre/{id}/showroom', name: 'app_showroom_index', methods: ['GET'])]
期望变量被命名为
id
(不是 membre_id
)