2

我有这个配置:

一个包含搜索字段的页面,在同一页面中提交时,我想要一个与研究匹配的每个结果的列表,每个人都链接到相应的路线。例如,如果我找到 4 个元素,我希望在结果页面中找到 4 个链接 Azienda1、Azienda2 ecc。

现在我得到这个错误:

在第 27 行的 ::base.html.twig 中呈现模板(““ABCAziendaBundle_visualizza_azienda”路由缺少一些强制参数(“id_azienda”)。”)时引发异常。500 内部服务器错误 - Twig_Error_Runtime 1链接异常:MissingMandatoryParametersException

这是关键文件,

#config.yml
ABCAziendaBundle_visualizza_azienda:
    pattern: /visualizza_azienda/{id_azienda}
    defaults: { _controller: ABCAziendaBundle:Default:showAzienda }
    requirements:
    id_azienda: \d+

ABCAziendaBundle_azienda_index:
    pattern:  /
    defaults: { _controller: ABCAICAziendaBundle:Default:indexAzienda }

#DefaultController.php

public function indexAziendaAction(Request $request) {

    $searchFormType = new SearchAziendaType();
    $form = $this->createForm($searchFormType);

    if ($request->getMethod() == 'POST')
    {
        $form->bindRequest($request);
        if ($form->isValid())
        {
            $data = $form->getData();

            $em = $this->getDoctrine()->getEntityManager();
            $aziende = $em->getRepository('ABCAziendaBundle:Azienda')->findAziendaByAliasOrRagioneSocialeSubstring($data["search_field"]);
            return $this->render('ABCAziendaBundle:Default:indexAzienda.html.twig', array('form' => $form->createView(), 'aziende' => $aziende));
        }
    }

    return $this->render('ABCAziendaBundle:Default:indexAzienda.html.twig', array('form' => $form->createView()));
}

public function showAziendaAction($id_azienda) {

    echo "non entra qui";
}

#indexAzienda.html.twig
{% extends "::base.html.twig" %}

{% block pagetitle %}ABC{% endblock %}

{% block body %}
<h2>Ricerca azienda</h2>
<div id="form_container">
    <form action="{{ path('ABCAziendaBundle_azienda_index') }}" method="post" {{ form_enctype(form) }}>
        {{ form_label(form.search_field, "Ricerca Azienda") }}
        {{ form_widget(form.search_field) }}
            <input type="submit" />
    </form>
    <a href="{{ path('ABCAziendaBundle_registra_azienda_anagrafica') }}"><button>nuova azienda</button></a>
</div>
    {% if aziende is defined %}
        {% for azienda in aziende %}
            <div class="areaTot">
                <a href="{{ path('ABCAziendaBundle_visualizza_azienda', { 'azienda_id' : azienda.id })  }}">{{azienda.alias}}</a>
            </div>
        {% endfor %}
    {% else %}
    <div class="areaTot">
        <p>"NIENTE"</p>
    </div>
    {% endif %}
{% endblock %}

4

1 回答 1

3

我认为这是您这边的错字:

<a href="{{ path('ABCAziendaBundle_visualizza_azienda', { 'azienda_id' : azienda.id })  }}">

应该:

<a href="{{ path('ABCAziendaBundle_visualizza_azienda', { 'id_azienda' : azienda.id })  }}">

不同的是路由参数,你最初写azienda_id的,但是路由参数名称是id_azienda

应该清除错误。

问候, 马特

于 2012-06-14T13:38:23.427 回答