Erreur:模板渲染过程中抛出异常(“Some

问题描述 投票:0回答:1

在我的项目中,我的成员每个人都有不同的画廊。我正在寻找一种方法,允许我拥有与我的会员相关的所有陈列室。我在会员和陈列室之间有一对多关系。我不明白返回的错误,就像我的成员实体不希望在陈列室方法的路由中存在成员的 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 的依赖关系,但没有成功。

php symfony twig symfony4
1个回答
0
投票

这条线

{{ 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

© www.soinside.com 2019 - 2024. All rights reserved.