0

我使用当前 Laravel 文档中的此代码

return redirect()->action(
    'UserController@profile', ['id' => 1]
);

并将其更改为我自己的控制器,如下所示:

return redirect()->action('ProjectController@showProject',['id'=> 2]); 

我的路线:Route::get('/crm/project/{id}', 'ProjectController@showProject');

根据我的F12这是我的请求网址,http://127.0.0.1:8000/back/crm/project/2这是正确的。但我收到以下错误:405 Method Not Allowed

这是我的堆栈跟踪的开始:

{消息:“”,异常:“Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException”,...}

提前致谢。

编辑:添加路线。

4

3 回答 3

0

这可能是一个棘手的问题。

我认为您将需要更改方法。检查您的 web.php 以获取该路线的声明。最好为您的路由使用中间件组。

这只是说不允许您的方法,因为它已用另一种方法声明。

于 2019-01-18T23:21:14.717 回答
0

您遇到的问题是因为您对两种不同的方法使用了相同的函数名称,一种用于 get,另一种用于 put,为什么您会收到错误,因为您在重定向中传递动作,因此它搜索动作并使用 put 方法找到该动作

用它来重定向

return redirect()->route('/back/crm/project/', ['id' => 1]);

还有一件事我想建议你永远不要在 ajax 请求中使用重定向它不是一个好的编程实践,如果你在你的 ajax 中有 put 或 post 方法,它根本不起作用

做出成功响应并刷新您的位置就是这样

于 2019-01-18T23:41:23.483 回答
0

重定向总是使用GET方法进行的。我假设web.php您使用其他 HTTP 方法(例如PUTor POST)定义了此路由 - 这就是您收到此错误的原因。查看web.php文件并确保您正在使用GET方法或重定向到其他 url。

于 2019-01-18T19:52:32.210 回答