从 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 的路由未定义错误的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 升级到 4.2 - 需要 mcrypt 扩展
升级到 Xcode 4.2/iOS 5 后,类别中的方法引发异常
如何将我的 laravel 5.0 项目直接升级到 5.4?