ralphjsmit / livewire-urls
在Livewire中获取前一个和当前URL。
Requires
- php: ^8.0
- illuminate/contracts: ^8.83|^9.0|^10.0|^11.0
- livewire/livewire: ^2.10|^3.0
- spatie/laravel-package-tools: ^1.9.2
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.8
- nesbot/carbon: ^2.66|^3.0
- nunomaduro/collision: ^5.0|^6.0|^7.0|^8.0
- orchestra/testbench: ^6.0|^7.0|^8.0|^9.0
- pestphp/pest: ^1.21|^2.34
- pestphp/pest-plugin-laravel: ^1.1|^2.3
- phpunit/phpunit: ^9.5|^10.0
- spatie/laravel-ray: ^1.26
README
获取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。
例如
- 用户访问页面A
- 用户访问页面B
- 用户访问页面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