当前位置: 首页 > 知识库问答 >
问题:

Laravel重定向回后路由,我得到方法不允许

高修伟
2023-03-14

首先,在get请求中,我显示一个表单,在提交表单时,它转到一个post url,在控制器中执行一些操作,然后返回另一个包含表单的视图。提交此表单后,我验证了一些内容,如果验证失败,我想重定向回一些错误,但不幸的是,laravel不允许我重定向回post方法。我有什么办法可以做到这一点吗?

我在laracast上看到过这个答案https://laracasts.com/discuss/channels/laravel/redirect-back-to-post-route-i-get-methodnotallowed-exception但是我不明白这个建议

这些是我的路线,按上述顺序排列。

  Route::get('/purchasePacks', 'masterDealerController@purchasePacks')->name('purchasePacks');
  Route::post('/confirmPuchasedPacks','masterDealerController@confirmPuchasedPacks');
  Route::post('/storeOrder','masterDealerController@storeOrder');

下面是storeOrder方法中的重定向代码。它会重定向回post url```

Alert::message("Unable to complete your payment at the moment.",'Please try again later.',"error");
        return back()->withInput();

```

共有1个答案

罗昊空
2023-03-14

我认为问题在于您正在向POST路由发送GET请求。你可以做我能想到的几件事中的一件。

1) 在控制器中,可以有一个静态方法storeOrderRedirect(),该方法可以处理重定向中需要的任何内容。

Route::match(array('GET', 'POST'), '/storeOrder', function()
{
   App\Http\Controllers\masterDealerController::storeOrderRedirect()
});

2) 只要有一个帖子和一条获取路线

3)我自己会通过ajax从表单发送数据,直到我得到我想要的响应,而不是使用重定向并离开页面。

 类似资料:
  • 是否可以将用户重定向到Laravel中的POST路由。我有两张表格。表格一发送到包含表格二的路线,表格二发送到最终路线,然后进行验证。如果

  • 我有一个索引页面,其中列出了我所有的数据,还有一个简单的过滤表单,它向给定的路径发出请求 在控制器中,我的索引方法如下 还有我的过滤方法,它执行请求,并将过滤后的数据传递到索引使用的相同视图。 我想学习的是,实施这样一个案例的最佳方式是什么?是否有可能在执行过滤请求后重定向回相同的索引路由?并且方法在刀片模板中不起作用,因此我不能在请求后显示旧表单数据。它有什么问题?最后,我如何删除索引和筛选方法

  • 我写了一个注销函数,简单地从数据库中删除所有必要的信息后,我清除会话和重定向注销。我想将用户重定向到主页(登陆页面),这在另一个功能中是登录(成功登录后,我会重定向到主页)。在我的代码中是这样做的: 路线。php有以下途径: 正如我在登录时所说的那样,我以前也这样做过,但它确实起了作用,但这里的意思是: 下面是包含重定向的登录部分的外观: 请支持并让我知道为什么它可以一次又一次地工作,尽管这两个方

  • 当我在web.php中定义了路由时,我在使用Laravel时遇到了一个路由未定义的错误,如下所示: 我正在从下面的代码重定向到路由 auth()代码可以工作,但当调用重定向时,我得到错误'route[home]not defined'。有没有人知道我怎么解决这个错误。任何帮助都会很好

  • 我是一个新手,希望在筛选之前进行筛选,该筛选将检查我想要的内容,并将带错误或成功的重定向返回到相同的配置文件。 这是我的过滤前函数 这是我的路线 Route::组(数组) 路由::get('/user/{username}',数组('as'= 和我的ProfileController公共功能 所以我的问题是如何让这些重定向工作,我试图搜索谷歌等,我找不到任何答案。这是我在这里的第一篇文章,我的英语

  • 我有一条基本路线,如下所示: 逻辑是我希望仅为数值。我现在要做的是,如果值是非数字的,则声明对此的重定向。假设的输入是。在这种情况下,我希望它重定向到值为的。 我尝试使用,但无法正常工作。它看起来像这样: 我更愿意将重定向放在组内,但如果这是唯一的方法,它可以放在组外。任何帮助都将不胜感激。 发生的情况是,如果我声明了路由重定向,就会出现404错误。 编辑:我想在文件。我知道如何在控制器中执行此操