从 Laravel 4.2 升级到 5.0 后获取 POST 的路由未定义错误

Posted

技术标签:

【中文标题】从 Laravel 4.2 升级到 5.0 后获取 POST 的路由未定义错误【英文标题】:Getting route undefined error for POST after upgrade from Laravel 4.2 to 5.0 【发布时间】: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 所以它可以是任何东西 【参考方案1】:

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

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

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

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

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

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

希望这会有所帮助!

【讨论】:

以上是关于从 Laravel 4.2 升级到 5.0 后获取 POST 的路由未定义错误的主要内容,如果未能解决你的问题,请参考以下文章

蓝牙4.0的模块可以升级为蓝牙5.0模块吗?

Laravel 升级到 4.2 - 需要 mcrypt 扩展

升级到 Xcode 4.2/iOS 5 后,类别中的方法引发异常

如何将我的 laravel 5.0 项目直接升级到 5.4?

从 4.1 升级到 4.2 后无法访问 extjs 应用程序

从 laravel 4.2 上的按钮行获取数据