首页 > 解决方案 > 在 Laravel 中获取上一个 url 的方法类型

问题描述

我想在 Laravel 中获取上一个 URL 的方法类型(POST 和 PUT)。

例如。
我使用了资源路由。所以让我们假设有 2 个页面创建产品和编辑产品。两个页面都包含一个表单。一旦将该表单提交到受尊重的路由(存储和更新),它就会调用 Product 的索引操作。所以现在我正在寻找的是获取先前 URL 的方法类型。这意味着在控制器的列表操作中POST存储路由和PUT更新路由。

我尝试了几种方法
url()->previous()
app('router')->getRoutes()->match(app('request')->create(url()->previous(), 'PUT'))->getName()
,还有更多,但没有一个对我有用。

注意:我正在开发一个包,所以不能依赖控制器的任何操作。默认情况下,索引操作调用包,所以我想在我的课堂上得到这个东西。

在此先感谢您的帮助。

标签: phplaravelhttprequesthttp-referer

解决方案


您可以将包含信息的参数传递给您的索引路由,例如

让我们将 /products 视为索引路由,

您可以在从 CREATE 或 UPDATE 表单重定向时传递 /products?ref_type=POST 或 /products?ref_type=PUT 。

在您的控制器中,您可以获得类似 $request->ref_type 或 $request['ref_type'] 的参数

对于获取请求,它将给出 null 以便可以轻松区分请求的类型


推荐阅读