我正在尝试将表单数据发布到/cart/order/edit/
,但它似乎不起作用,更有趣的是它在本地工作但不是实时。
回复说
糟糕!发生错误
服务器返回“0没有找到”GET / cart / order / edit /“的路径:方法不允许(允许:POST)”。
路由看起来像 (php app / console router:debug)
cart_order GET /cart/order/
cart_order_edit POST /cart/order/edit/
cart_order_save POST /cart/order/save
这是routing.yml
#
# All routes are set up in controller source files in src/*Bundle/Controller/*Controller.php
# using annotations.
#
# Set up Bundle
CartBundle:
resource: "@CartBundle/Controller/"
type: annotation
prefix: /
浏览器中的请求标题
POST / cart / order / edit / HTTP / 1.1
我试图找到一些感觉,但没有
以下是我发布的表格:
<form action="/../cart/order/edit/" method="POST" id="orderForm">
控制器中的路由:
* @Route
* (
* "/cart/order/edit/",
* name="cart_order_edit"
* )
*
* @Method({"POST"})
答案 0 :(得分:0)
您尝试获取仅为POST请求配置的操作
你是否使用过这样的东西?use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
/**
* @Route("/blog")
*/
class PostController extends Controller
{
/**
* @Route("/edit/{id}")
* @Method({"GET", "POST"})
*/
public function editAction($id)
{
}
}
答案 1 :(得分:0)
如果您没有提供任何代码供参考,很难确切地说出错了什么。但是,您必须检查以下内容:
<强>的routing.yml 强>
你的routing.yml文件怎么样?它应该与此类似:
route_needed:
pattern: /cart/order/edit/
defaults: { _controller: CartBundle:Default:edit }
requirements:
_method: POST
您的表单
你的表格看起来如何?它应该与此类似:
<form action="{{ path('route_needed' }}" method="post" {{form_enctype(edit)}}>
****whatever is in your form****
{{form_rest(edit)}}
</form>
但是,我们再次确切地知道问题是什么,因为您没有提供任何代码。但上面的例子来自我的一个有效的Symfony2项目。
答案 2 :(得分:0)
我遇到了同样的问题。 在我的情况下,.htaccess重定向我的请求。 我发了帖子,它重定向为get。 也许检查你的htaccess或服务器conf。