【问题标题】:How to get previous route name in Laravel 5.8如何在 Laravel 5.8 中获取以前的路线名称
【发布时间】:2025-11-22 18:40:01
【问题描述】:

我正在尝试在 Laravel 5.8 中获取以前的路线名称。当我使用虚拟主机时,这个答案 (https://*.com/a/40690569/16735772) 可以完美运行,但在 (125.125.125.125/project_folder/public) 这样的直接 url 中却不是因为抛出了 NotFoundHttpException。

使用虚拟主机,$request->create(url()->previous()) 使用相对 url 创建一个带有 pathInfo 和 requestUri 的请求,例如,my_profile/2,但没有虚拟主机,这些属性具有不同的值,例如 project_folder/public/my_profile/2

我不需要重定向回来,只需要知道以前的路线名称即可检查。例如:

if ($previous_route == 'show_name') {
   //do something
}

任何帮助将不胜感激。

【问题讨论】:

  • *.com/a/57339956/14344959 查看此答案。希望这篇对你有帮助
  • 感谢您的提示,但它也不起作用。当我不使用虚拟主机时,回调的结果为空。它似乎将 project_folder/public 作为相对 URL 的一部分,因此在路由列表中找不到此 URL。

标签: laravel


【解决方案1】:

试试这个代码来获取之前的路由名称:

Route::getRoutes()->match(
    Request::create(URL::previous())
)->getName();

您可以制作一个帮助程序或刀片指令以使其更易于访问。

【讨论】:

  • 这是我在问题中评论的答案,当我使用虚拟主机时有效,但不使用直接 url (125.125.125.125/project_folder/public)
  • 感谢您的提示,但它也不起作用。当我不使用虚拟主机时,回调的结果为空。它似乎将 project_folder/public 作为相对 URL 的一部分,因此在路由列表中找不到此 URL。
  • 嗯,我不知道了。另一种方法是您可以将当前路线名称放入会话中?。
最近更新 更多