watson / active
Laravel 帮助器,用于识别当前路由、控制器和动作
Requires
- php: ^8.2
- illuminate/config: ^10.0|^11.0
- illuminate/http: ^10.0|^11.0
- illuminate/routing: ^10.0|^11.0
- illuminate/support: ^10.0|^11.0
Requires (Dev)
- mockery/mockery: ^1.5.1
- phpunit/phpunit: ^9.0|^10.5|^11.0
README
Active 是 Laravel 的一个辅助包,可以轻松识别当前路径或路由,用于添加 'active' 类(如 Bootstrap 框架中使用的类)以及仅在特定路由处于活动状态时执行其他操作。它还包括用于检索当前控制器和动作名称的辅助器。
安装
首先,通过 Composer 需求此包。
composer require watson/active
使用 Laravel 5.1?此包适用于您的最新版本是 2.0.4。
接下来,在您的 config/app.php
文件中添加服务提供者。
Watson\Active\ActiveServiceProvider::class
如果您想使用 Facade 而不是辅助函数,请将其添加到 aliases
数组中。
'Active' => Watson\Active\Facades\Active::class
使用 Active
辅助函数
Active 包含了一些辅助函数,这使得在不使用 Facade 或创建自己的实例的情况下使用它变得非常容易。
active()
is_active()
使用 active()
您传递一个数组,包含您想要查看的当前页面上的路由或路径,如果其中任何一个匹配,此函数将返回字符串 active
,对于 Bootstrap。或者,您也可以传递一个自定义的返回字符串作为第二个参数。
active(['login', 'users/*', 'posts.*', 'pages.contact']); // Returns 'active' if the current route matches any path or route name. active(['login', 'logout'], 'active-class'); // Returns 'active-class' if the current route is 'login' or 'logout'. active(['login', 'logout'], 'active-class', 'fallback-class'); // Returns 'fallback-class' if the current route is not 'login' or 'logout'.
在第一个例子中,如果当前路径是 login
,以 users/
开头或当前路由的名称是 posts.create
,则此函数将返回字符串 active
。
请注意,提供了多种参数类型:您可以使用路径字符串,您可以使用带有通配符(使用 *
)的路径字符串,您还可以使用命名路由。
您可以使用此函数与您的链接一起使用,为它们提供活动状态。
<a href="{{ route('posts.index') }}" class="{{ active('posts.index') }}">All posts</a>
您还可以提供某些路径或路由,当考虑时将其排除。
active(['pages/*', 'not:pages/contact']) active(['pages.*', 'not:pages.contact'])
使用 is_active()
这与 active()
工作方式类似,您可以将路径和路由传递给它,但它将返回一个布尔值,如果当前页面匹配。
@if (is_active('posts/*')) You're looking at a blog post! @endif
其他辅助器
提供了两个辅助函数来获取当前控制器和动作,如果您的路由是由控制器处理的请求。这些函数将返回不带请求方法的小写控制器/动作名称。以下是一个请求被路由到 `FooController@getBar` 的示例。
$controller = controller_name(); // foo $action = action_name(); // bar
许可证
Active for Laravel 是 100% 免费和开源的,遵循 MIT 许可证。您可以根据自己的需求使用它。
此包是 Treeware。如果您在生产环境中使用它,那么我们请求您 为世界买一棵树 以感谢我们的工作。通过为 Treeware 森林做出贡献,您将为当地家庭创造就业机会并恢复野生动物栖息地。