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
Php Laravel 4显示MethodNotAllowedHttpException_Php_Laravel_Routes - Fatal编程技术网

Php Laravel 4显示MethodNotAllowedHttpException

Php Laravel 4显示MethodNotAllowedHttpException,php,laravel,routes,Php,Laravel,Routes,当我点击地址栏时,我收到了这个错误 我从数据库中获取数据并发送到视图,该视图工作得很好,但当我点击地址栏选项卡时,它会显示出来 Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException 任何帮助都会对我很好 在我的控制器中: public function getpiece() { $reportno = $_POST['reportno']; $data = DB::table('rep

当我点击地址栏时,我收到了这个错误

我从数据库中获取数据并发送到视图,该视图工作得很好,但当我点击地址栏选项卡时,它会显示出来
Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException
任何帮助都会对我很好

在我的控制器中:

public function getpiece()
{  
    $reportno = $_POST['reportno'];
    $data     = DB::table('reportno')->where('reportno','=',$reportno)->get();


    if(empty($data)) {
        return \Redirect::to('dashboard/client/piece')
            ->with('status','error')
            ->with('message','Data Not  Available');
    } else {       
        return \View::make('dashboard.client.piecewisereport')
            ->with('data',$data);
    }
}

我注意到您的控制器方法被称为
getpost
,但是您访问
$\u POST
变量


如果不查看您的routes文件,我就无法确定,但是如果您的route使用了
route::get('routename')
,那么它使用了错误的HTTP方法。如果是这种情况,请尝试将其更改为
Route::post('routename')
它不起作用,因为当您在地址栏中点击
enter
时,它试图使用
GET
而不是
post
,但它只找到
post
路由。(路线:邮政)

要解决此问题,请执行以下操作之一:

Route::any('getpiece','Controllers\Domain\Client\ClientController@getpiece');
然后我建议使用类似

if (Request::isMethod('post'))
{
    //
}

来包装您的代码。有关这方面的更多信息,请参阅

另一种方法是直接从路由寻址控制器,如下所示:


注意:这些文档链接链接到Laravel 4.2。

执行
php artisan routes
在项目根目录的终端中,它允许您检查注册的路由


PS:FYI,在Laravel 5的情况下,应该是
php artisan route:list

如何调用此操作和http方法,例如GET、POST、DELETE或其他?可能您的路由中的POST和GET方法没有分开。使用POST route::POST('getpiece','Controllers\Domain\Client\ClientController@getpiece');我只使用post methodgetpiece是一个函数名,您可以只使用piece()Yok,在这种情况下,看起来Ciccio的答案就是您要查找的。路由丢失,可能会话路由中有问题?抱歉,更新了答案。我忘了在路由中添加
@getpiece
,奇怪的是,在
任何
上都会出现
方法不允许异常
异常。您是否删除了
路由::post
?或者它不是一个
MethodNotAllowedException
?是的,我将route::post更改为route::any,但仍然存在相同的错误MethodNotAllowedHttpException
if (Request::isMethod('get'))
{
    //
}