【问题标题】:Getting route undefined error for POST after upgrade from Laravel 4.2 to 5.0从 Laravel 4.2 升级到 5.0 后获取 POST 的路由未定义错误
【发布时间】:2015-12-17 00:03:56
【问题描述】:

我正在从 Laravel 4.2 => 5.x 升级我的应用程序 我正在使用诸如

之类的路线
Route::post('/cancelaccount',["as"=>"/cancelaccount",'uses'=>'UserController@cancelAccount']);

但是当我尝试加载页面时,我收到“/cancelaccount”未定义错误。如果是 GET 请求,我不会收到此错误,我提交给控制器方法的所有 POST 请求都有问题。

目前作为一种解决方法,我将所有操作从 URL 格式替换为 Controller@method 格式

我错过了什么吗?

【问题讨论】:

  • 你可以在路由中不带前导斜杠的情况下尝试一次,看看它是否有效?
  • 可能是因为CSRF Protection
  • @Musa,我尝试删除“/”,但结果相同。我仍然收到路由未定义错误!
  • @mimo,CSRF 不会给我 TokenMismatch 异常而不是路由未定义?
  • 你得到一个undefined error 所以它可以是任何东西

标签: php laravel post controller routes


【解决方案1】:

所以在网上搜索了高低的答案后,我意识到我看错了地方。我正在寻找 Route 的答案,这不是问题所在。

如果某个可怜的灵魂面临同样的问题,这就是答案。只有表单操作才会遇到路由未定义错误。在 Laravel 5 中,表单“动作”仅保留给控制器方法。如果您想发布到命名路由,请像这样打开您的表单

Form::open('route'=>'your-named-route')

就我而言,我将表单定义更改为

Form::open('route'=>'/cancelaccount','method'=>'post')

当然你仍然可以使用Form::open('action'=>'Controller@method')

希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 2017-05-15
    • 2017-02-23
    • 2018-11-25
    • 1970-01-01
    • 2015-04-07
    • 2014-05-22
    • 2017-11-23
    • 2018-06-27
    • 1970-01-01
    相关资源
    最近更新 更多