Symfony2-调用了错误的控制器操作

Symfony2-调用了错误的控制器操作,symfony,Symfony,我在页面上做了很多,我想我在某个地方遇到了冲突。基本上,我的页面最初显示一个输入和一个空白div。当提供并提交一个输入时,页面会用充满数据的div刷新。然后,用户可以选择其中一些数据,并最终再次提交 这是我的看法 {% block main %} <div class="col-md-4"> <section class="panel panel-default"> <header class="panel-headi

我在页面上做了很多,我想我在某个地方遇到了冲突。基本上,我的页面最初显示一个输入和一个空白div。当提供并提交一个输入时,页面会用充满数据的div刷新。然后,用户可以选择其中一些数据,并最终再次提交

这是我的看法

{% block main %}
    <div class="col-md-4">
        <section class="panel panel-default">
            <header class="panel-heading">
                <h3 class="panel-title">Terminal</h3>
            </header>

            <div class="panel-body">
                <form action="{{ path('NickAlertBundle_terminalSearch') }}" method="post" enctype="multipart/form-data" class="terminalForm" id="terminalForm">
                    <div class="row">
                        <div class="col-md-12">
                            <input type="text" class="addMargin" id="terminal_command" name="terminal_command" placeholder=">">
                        </div>
                    </div>

                    <div class="row">
                        <div class="col-md-8 col-md-offset-4">
                            <input type="submit" class="btn btn-default" id="terminal_submit" value="Submit">
                        </div>
                    </div>
                </form>
            </div>
        </section>
    </div>

    <div class="col-md-8" id="terminal-window">
        <table class="terminalAvailability">
            {% if data is defined %}
                <form action="{{ path('NickAlertBundle_terminalCreate') }}" method="post" enctype="multipart/form-data" class="terminalForm">
                    {% for info in data %}
                        <tr>
                            <td class="flightNumber">{{ info.flightNumber }}</td>
                            <td class="details">{{ info.from ~ info.to }}</td>
                            {% for seat, availability in info.seats %}
                                <td class="seatClass">
                                    <label for="{{ seat }}">
                                        <span>{{ seat ~ availability }}</span>
                                    </label>
                                    <input type="checkbox" id="{{ seat }}" name="seats[{{ info.flightNumber }}][]" style="display: none;" value="{{ seat }}" />
                                </td>
                            {% endfor %}
                            <td class="otherInfo">{{ info.other }}</td>
                        </tr>
                    {% endfor %}
                    <div class="row">
                        <div class="col-md-8 col-md-offset-4">
                            <input type="submit" class="btn btn-default" value="Submit">
                        </div>
                    </div>
                </form>
            {% endif %}
        </table>
    </div>

    <div class="modal"></div>
{% endblock %}
最后是我的路线

NickAlertBundle_terminal:
    pattern:  /terminal
    defaults: { _controller: NickAlertBundle:Alert:terminal }
    methods:  [GET]

NickAlertBundle_terminalSearch:
    pattern:  /terminal
    defaults: { _controller: NickAlertBundle:Alert:terminalSearch }
    methods:  [POST]

NickAlertBundle_terminalCreate:
    pattern:  /terminal
    defaults: { _controller: NickAlertBundle:Alert:terminalCreate }
    methods:  [POST]
因此,页面最初显示良好。然后,用户输入一些输入并提交,然后响应数据显示在div中。因此,这意味着前两个路由可以完美地工作。使用div中的数据,用户可以选择一些数据,然后提交。但是,当提交此数据时,它们将显示为

添加警报时出错。请输入命令

此错误适用于第二个操作,与第三个操作无关。第二个表单的路径设置为NickAlertBundle_terminalCreate,那么为什么它会与另一个操作交叉


感谢
NickAlertBundle\u terminalCreate
将始终解决
NickAlertBundle\u terminalSearch
,因为路由匹配器将始终使用这些规则将模式
/terminal
+方法
POST
匹配到第一条路由

为什么不给
NickAlertBundle\u terminalSearch
一个类似
/terminal/search
的模式呢

NickAlertBundle_terminal:
    pattern:  /terminal
    defaults: { _controller: NickAlertBundle:Alert:terminal }
    methods:  [GET]

NickAlertBundle_terminalSearch:
    pattern:  /terminal
    defaults: { _controller: NickAlertBundle:Alert:terminalSearch }
    methods:  [POST]

NickAlertBundle_terminalCreate:
    pattern:  /terminal
    defaults: { _controller: NickAlertBundle:Alert:terminalCreate }
    methods:  [POST]