【问题标题】:Laravel 4 shows MethodNotAllowedHttpExceptionLaravel 4 显示 MethodNotAllowedHttpException
【发布时间】:2016-01-22 12:53:34
【问题描述】:

我在点击地址栏时收到此错误,

我从数据库中获取数据并发送到视图,该视图运行良好,但是当我点击地址栏选项卡时,它显示 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);
    }
}

【问题讨论】:

  • 如何调用这个动作,以及http方法,例如GET、POST、DELETE或其他?
  • 可能你的路由中的 POST 和 GET 方法没有分开。
  • 使用post Route::post('getpiece','Controllers\Domain\Client\ClientController@getpiece');

标签: php laravel routes


【解决方案1】:

它不起作用,因为当您在地址栏中点击enter 时,它试图使用GET 而不是POST,但它只找到POST 路由。 (Route::post)。

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

Route::any('getpiece','Controllers\Domain\Client\ClientController@getpiece');

然后我建议使用类似的东西

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

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

包装你的代码。更多信息请参见Request Information docs

另一种方法是直接从路由中寻址控制器,可以在这里找到:Laravel 4.2 Implicit Controllers

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

【讨论】:

  • 路由丢失,可能会话路由有问题?
  • 对不起,更新了答案。我忘了在路由中添加@getpiece
  • 很奇怪你会在any 上得到一个MethodNotAllowedException 异常。您是否删除了Route::post?还是不是MethodNotAllowedException
  • 是的,我将 route:: post 更改为 Route::any ,但仍然存在相同的错误,MethodNotAllowedHttpException
【解决方案2】:

我注意到您的控制器方法称为getpost,但您访问的是$_POST 变量。

如果不查看您的路由文件,我无法确定,但如果您的路由使用Route::get('routename'),那么它使用了错误的 HTTP 方法。如果是这种情况,请尝试将其更改为 Route::post('routename')

【讨论】:

  • 我只使用 post 方法
  • getpiece 是一个函数名,你只能取piece()
  • 好的,在这种情况下,看起来 Ciccio 的答案就是您要找的。​​span>
【解决方案3】:

在项目根目录的终端中执行php artisan routes,它可以让您检查您注册的路线。

PS:仅供参考,如果是 Laravel 5,它将是 php artisan route:list

【讨论】:

    猜你喜欢
    • 2013-07-04
    • 2013-09-18
    • 2014-09-16
    • 2014-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-19
    • 2019-04-15
    相关资源
    最近更新 更多