pyaesone17/active-state

Laravel URL 激活状态检查器

v1.2 2017-09-29 06:39 UTC

This package is not auto-updated.

Last update: 2024-09-14 18:19:26 UTC


README

Total Downloads License Latest Stable Version Monthly Downloads

简单的 Laravel 请求 URL 激活检查器

有时您需要检查请求 URL 是否处于活动状态,特别是对于后端侧边栏。以下是几个用途。

Bilby Stampede

基本上我们会这样做。

<li class="sidebar {{ Request::is('post') ? 'active' : 'no' }} ">Post</li>
<li class="sidebar {{ Request::is('page') ? 'active' : 'no' }} ">Page</li>

如果能更简洁就更好了,对吧?

<li class="sidebar {{ active_check('post') }} ">Post</li>
<li class="sidebar {{ active_check('page') }} ">Page</li>

安装

使用 composer 安装

Laravel 5.4 及以上版本

composer require pyaesone17/active-state:^1.1.1

Laravel 5.3 及以下版本

composer require pyaesone17/active-state:^0.0.2

并在 config/app.php 中添加服务提供者

'providers' => [
    ........,
    Pyaesone17\ActiveState\ActiveStateServiceProvider::class,
]

如果您想使用外观,请将以下内容添加到 config/app.php 中的外观配置中

'aliases' => [
    ........,
    'Active' => Pyaesone17\ActiveState\ActiveFacade::class,
]

发布配置文件

php artisan vendor:publish --provider="Pyaesone17\ActiveState\ActiveStateServiceProvider"

使用方法

它会检查您的请求是否与 www.url.com/data 匹配。如果请求匹配此 URL,则将返回配置文件中的默认值。默认值对于 true 状态是 "active",对于 false 是 "no"。您可以在 active.php 中进行配置。

{{ Active::check('data') }} 

检查确切 URL。

{{ Active::check('data') }} // check request is www.url.com/data

要深入检查 URL,只需将 true 值作为第二个参数传递。

{{ Active::check('data',true) }}  // check request is www.url.com/data || www.url.com/data/*

或者

{{ Active::check(['data','post','categories']) }}  // check request is www.url.com/data || www.url.com/post || www.url.com/categories
{{ Active::check(['data','post','categories'],true) }} // check request is www.url.com/data/* || // check request is www.url.com/post/* || www.url.com/categories/*

要动态更改返回值,只需传递第三个和第四个参数。

{{ Active::check('data',true,'truth','fake') }} // it will override the value from config file.

或者您甚至可以使用辅助函数。

{{ active_check('data') }}

您还可以使用此包进行条件显示数据。在某些情况下,您可能需要根据请求渲染模板的一部分。

@ifActiveUrl('data')
    <p>Foo</p>
@else
    <p>Bar and Bazz</p>
@endIfActiveUrl

高级用法及以上版本 1.1.1

检查路由名称。

{{ Active::checkRoute('users.index') }} // check request url route name is "users.index"

或者

{{ Active::checkRoute(['users.index','users.show', 'users.edit']) }} // check request url route name is "users.index" or "users.show" or "users.edit"

有时传递多个路由名称作为参数很麻烦。您可以简单地这样做

{{ Active::checkRoute('users.*') }} 

当然,您也可以在运行时更改返回值,作为第二和第三个参数。

{{ Active::checkRoute('users.index','routeIsActive','routeNotActive') }} 

或者

{{ Active::checkRoute(['users.index','users.show'],'routeIsActive','routeNotActive') }} 

对于辅助函数。

{{ active_route('users.comments.*') }} 

是的,它也适用于 blade。

@ifActiveRoute('users.index')
    <p>Foo</p>
@else
    <p>Bar and Bazz</p>
@endIfActiveRoute

检查具有完全相同的查询参数值的 URL。

{{ Active::checkQuery('users?gender=male') }} // check request is www.url.com/users?gender=male

或者

{{ Active::checkQuery(['users?gender=male','users?status=married']) }} // check request is www.url.com/users?gender=male or www.url.com/users?status=married

当然,您也可以在运行时更改返回值,作为第二和第三个参数。

{{ Active::checkQuery(['users?gender=male','itIsMale','Ah it is wonder woman') }} 

或者

{{ Active::checkQuery(['users?gender=male','users?status=married'],'male or married','nothing') }} 

对于辅助函数。

{{ active_query('users?gender=male') }} 

是的,它也适用于 blade。

@ifActiveQuery(['users?gender=male','users?status=married'])
    <p>Foo</p>
@else
    <p>Bar and Bazz</p>
@endIfActiveQuery

注意事项

每次更新包时,您都必须运行 "php artisan view:clear" 以清除 blade 指令。

配置

您可以配置激活状态的返回值。

return [

    // The default  value if the request match given action
    'active_state'      =>  'active',

    // The default  value if the request match given action
    'inactive_state'    =>  'no'

];