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