ralphjsmit/livewire-urls

在Livewire中获取前一个和当前URL。

1.4.0 2024-03-14 09:52 UTC

README

livewire-urls

获取Livewire中的当前和前一个URL。

此包为您提供了一个简单的方法来 检索Livewire中的当前和前一个URL

不幸的是,Laravel或Livewire 无法为您处理 这一点,因为当用户与您的网页交互时,Livewire也会向您的服务器发送请求。这意味着通常的方法,如 URL()->current() 指向一个内部的Livewire 路由,而不是 用户正在访问的“真实路由”

此包为您提供中间件和 辅助方法,以确定当前正在使用的URL

安装

您可以通过Composer安装此包

composer require ralphjsmit/livewire-urls

接下来,您应该在Http Kernel.php 中将 \RalphJSmit\Livewire\Urls\Middleware\LivewireUrlsMiddleware::class, 添加到 $middlewareGroups 属性的 web 键中。

用法

当前URL

use RalphJSmit\Livewire\Urls\Facades\Url;

$currentUrl = Url::current();

当前路由

$currentRouteName = Url::currentRoute();

当用户在一个没有命名的路由上时,Url::currentRoute() 返回 null

前一个URL

$previousUrl = Url::previous();

当没有可用的前一个路由时,Url::previous()-方法返回 null

前一个路由

$previousRouteName = Url::previousRoute();

当没有前一个路由或前一个路由不是命名的路由时,Url::previousRoute() 返回 null

最后记录的URL

您可以使用 Url::lastRecorded() 方法获取历史记录中与当前URL不同的最后URL。

例如

  1. 用户访问页面A
  2. 用户访问页面B
  3. 用户访问页面B

Url::lastRecorded() 会给出页面A的URL。如果没有找到其他URL(除了当前会话之外),函数将返回 null

$lastRecordedUrl = Url::lastRecorded();

最后记录的路由

您可以使用 Url::lastRecordedRoute() 方法获取历史记录中与当前URL/路由不同的最后路由。

$lastRecordedRoute = Url::lastRecordedRoute();

如果页面A在命名的路由上,Url::lastRecordedRoute() 会给出页面A的路线(如前面的例子)。否则,它将返回 null。该函数还在没有找到其他URL(除了当前会话之外)时返回 null

一般

🐞 如果您发现一个错误,请提交详细的问题,我会尽快修复它。

🔐 如果您发现一个漏洞,请审查我们的安全策略

🙌 如果您想做出贡献,请提交拉取请求。所有PR都将得到充分认可。如果您不确定我是否会接受您的想法,请随时联系我!

🙋‍♂️ Ralph J. Smit