watson/active

Laravel 帮助器,用于识别当前路由、控制器和动作

7.1.0 2024-02-28 21:52 UTC

README

Build Status Total Downloads Latest Stable Version Latest Unstable Version License Buy us a tree

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 森林做出贡献,您将为当地家庭创造就业机会并恢复野生动物栖息地。