Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel 5.5-使用POST方法时,MethodNotAllowedHttpException_Php_Laravel_Laravel 5_Routing_Routes - Fatal编程技术网

Php Laravel 5.5-使用POST方法时,MethodNotAllowedHttpException

Php Laravel 5.5-使用POST方法时,MethodNotAllowedHttpException,php,laravel,laravel-5,routing,routes,Php,Laravel,Laravel 5,Routing,Routes,我创建了过滤器以从数据库中获取数据。当我使用GET方法时,它可以工作,但使用POST方法时,我得到错误: Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException 我花了数小时寻找解决方案,但似乎我遗漏了一些东西 对于测试,我试图直接在路由中获得结果,但仍然是相同的问题 这很有效 <?php use App\test; Route::get('/', function () { $test = test

我创建了过滤器以从数据库中获取数据。当我使用GET方法时,它可以工作,但使用POST方法时,我得到错误:

Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException

我花了数小时寻找解决方案,但似乎我遗漏了一些东西

对于测试,我试图直接在路由中获得结果,但仍然是相同的问题

这很有效

<?php
use App\test;
Route::get('/', function () {
    $test = test::all();
return $test;
});
这个

use App\test;
Route::post('/', function () {
    $test = test::all();
return $test;
});
应该始终是
Request
的实例,因此您不能像
GET
那样在浏览器中直接访问它,您必须向其发布一些表单数据。因此,最好将其重命名为以下名称:

use App\test;

Route::post('/test', function (Request $request) {
    $test = test::all();
return $test;
});
$request
保存表单数据

应该始终是
Request
的实例,因此您不能像
GET
那样在浏览器中直接访问它,您必须向其发布一些表单数据。因此,最好将其重命名为以下名称:

use App\test;

Route::post('/test', function (Request $request) {
    $test = test::all();
return $test;
});
$request
保存表单数据
Route::get()
Route::post()
正在为指定的http方法定义路由处理程序

如果仅定义此路线:

Route::post('/', function () {
    $test = test::all();
    return $test;
});
然后必须确保对该url的所有调用都使用POST方法。如果您使用GET方法对该url发出请求,您将获得
方法NotAllowedHttpException
异常,因为您只定义了POST方法处理程序。

Route::GET()
Route::POST()
正在为指定的http方法定义路由处理程序

如果仅定义此路线:

Route::post('/', function () {
    $test = test::all();
    return $test;
});

然后必须确保对该url的所有调用都使用POST方法。如果您使用GET方法对该url发出请求,您将获得
方法NotAllowedHttpException
异常,因为您只定义了POST方法处理程序。

看起来您可能忘记了{{{csrf\u field()}}。将此添加到您的表单中


如果您在没有csrf的情况下发布数据,在laravel 5.5中,您将看到此错误。

看起来您可能忘记了{{csrf_field()}}。将此添加到您的表单中


如果您在没有csrf的情况下发布数据,在laravel 5.5中,您将看到此错误。

请注意,如果您正在为post编写路由,在测试它时,请确保您正在将数据发布到页面,否则它将通过错误


Post路由不能简单地通过调用url进行测试,方法应该是Post。如果您使用邮递员检查路由URI,它将起作用。

请注意,如果您正在为post编写路由,在测试它时,请确保您正在将数据发布到页面,否则它将通过一个错误


Post路由不能简单地通过调用url进行测试,方法应该是Post。如果您使用postman检查路由URI,它将起作用。

尝试清除缓存
php artisan route:clear
@FuzzyTree它没有帮助。您如何测试该帖子?您实际上是在创建post请求,还是以与get相同的方式对其进行测试?在调用get或post的位置共享代码?我以相同的方式对其进行测试,没有其他代码,只有空类。我在这个例子中也有同样的错误:Route::post('foo/bar',function(){return'Hello World';});尝试清除缓存
php artisan路由:clear
@FuzzyTree它没有帮助。您如何测试帖子?您实际上是在创建post请求,还是以与get相同的方式对其进行测试?在调用get或post的位置共享代码?我以相同的方式对其进行测试,没有其他代码,只有空类。我在这个例子中也有同样的错误:Route::post('foo/bar',function(){return'Hello World';})
@csrf
也因刀片模板引擎而有效
@csrf
也因刀片模板引擎而有效