Php 表单提交在Laravel中不起作用

Php 表单提交在Laravel中不起作用,php,laravel,laravel-4,Php,Laravel,Laravel 4,我在表单中使用POST方法提交值。这是我的表格代码: <form action="{{ url('/') }}" method="POST"> <input type="hidden" name="value1" value="one" /> <input type="hidden" name="value2" value="two" /> <input type="submit" value="SEND!" /> <

我在表单中使用POST方法提交值。这是我的表格代码:

<form action="{{ url('/') }}" method="POST">
    <input type="hidden" name="value1" value="one" />
    <input type="hidden" name="value2" value="two" />

    <input type="submit" value="SEND!" />
</form>
无论我每次按下发送按钮,它都会显示索引文件。当我尝试注释get方法时。现在它显示了一个
方法NotAllowedHttpException
错误。在错误消息中,它显示请求方法为GET


我现在该怎么办?那是虫子吗?或者我的脚本有问题?

您使用的是哪个版本的Laravel?Laravel v4附带了CSRF(跨站点请求伪造)保护。您需要包含一个隐藏的
\u令牌
字段,方法是让Laravel为您使用
Form::token()
生成一个,如果您使用
Form::open()
方法,它将为您添加令牌字段。Laravel将自动查找该_标记字段,如果找不到该字段,或者该字段不是正确的标记,它将抛出异常

编辑:查看应用程序/目录中的Filters.php,了解有关CSRF过滤器的更多信息。

请参阅

我所看到的是,Laravel通过重定向到不带“/”且代码为301的URL,从URL中删除所有尾随的“/”。您的浏览器将通过GET请求而不是新的POST请求遵循此重定向


我在发布任何带有尾随“/”的url时也遇到了同样的问题。为什么不在另一个url(如“/post”)上处理帖子,看看这是否真的是问题所在?

是的,我使用的是laravel 4,我在标签上添加了它。没有csrf不起作用。我添加了一个带有_标记的隐藏输入,并在路由器上执行“检查前”功能,但结果相同。然后它与您的URL有关。就像穆罕默德说的。是的,我用过/约会过,这很好用。另一件有趣的事是,如果我用空格“”替换“/”,它也可以工作。所以尾部斜杠只使用get。这意味着我必须更改我的URL?您可能应该使用RESTful控制器,它使事情变得非常简单。然后,您可以拥有一个专门用于表单的控制器,该控制器将处理显示表单、获取输入等操作。。。您可以使用php artisan控制器:make和laravel将为您生成样板控制器。。。
Route::get('/', function()
{
    return View::make('index');
});

Route::post('/', function()
{
        $data = Input::all();
        var_dump($data);
});