Filter manager package for product list,let`s elegant generate filter url. This page used FilterManager: kiteme.cn/list
{
"require": {
// ...
"toplan/filter-manager": "dev-master",
}
}
To use the FilterManager Service Provider, you must register the provider when bootstrapping your Laravel application. There are essentially two ways to do this.
Find the providers key in config/app.php and register the FilterManger Service Provider.
'providers' => array(
// ...
'Toplan\FilterManager\FilterManagerServiceProvider',
)
Find the aliases key in config/app.php.
'aliases' => array(
// ...
'FilterManager' => 'Toplan\FilterManager\Facades\FilterManager',
)
<!-- example -->
<li class="item all {{FilterManager::isActive('gender',\Toplan\FilterManager\FilterManager::ALL,'active','')}}">
<a href="{{FilterManager::url('gender',\Toplan\FilterManager\FilterManager::ALL)}}">All</a>
</li>
<li class="item @if(FilterManager::isActive('gender','male')) active @endif">
<a href="{{FilterManager::url('gender','male')}}">Male</a>
</li>
<li class="item @if(FilterManager::isActive('gender','female')) active @endif">
<a href="{{FilterManager::url('gender','female')}}">Female</a>
</li>
You can find most of the usage in the this file: demo_temp_for_laravel.balde.php
- create a instance of FilterManager.
$filters: this is filters data ,required,exp:['gender'=>'male','city'=>'beijing']
$baseUrl: default=array().
$blackList: this is blacklist for filtrs,default=array(),exp:['pageindex'].
- set black list for filter
FilterManager::setBlackList(['page','pageindex']);
- has filter,return value or false
FilterManager::has('gender');
- is active
FilterManager::isActive('gender','male');#this will return true or false;
FilterManager::isActive('gender','male','active','not active');#this will return 'active' or 'not active';
- get url
One filter has some values,and every value has a url,this mothod return a full url string.
$filter_name: param name, required.
$filter_value: param value, default value:\Toplan\FilterManager\FilterManager::ALL.
$multi: whether to support multiple? false or true, default=false.
$LinkageRemoveFilters:linkage remove the other filter, default=array().
$blackList: temporary blacklist, default=array().
FilterManager::url('gender',\Toplan\FilterManager\FilterManager::ALL);//without gender param
FilterManager::url('gender','male',false);#single value
FilterManager::url('cities','beijing',true);#multiple values
//One province has many cities,If you remove the 'province tag',you should linkage remove the selected cities
FilterManager::url('province','chengdu',false,['cities']);//linkage remove selected cities