https://github.com/codewithdennis/filament-price-filter
A simple and customizable price filter for FilamentPHP, allowing users to easily refine results based on specified price ranges.
https://github.com/codewithdennis/filament-price-filter
filamentphp filter laravel php plugin table
Last synced: 2 months ago
JSON representation
A simple and customizable price filter for FilamentPHP, allowing users to easily refine results based on specified price ranges.
- Host: GitHub
- URL: https://github.com/codewithdennis/filament-price-filter
- Owner: CodeWithDennis
- License: mit
- Created: 2024-10-16T09:14:10.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2025-02-17T10:18:29.000Z (4 months ago)
- Last Synced: 2025-04-09T03:01:56.769Z (3 months ago)
- Topics: filamentphp, filter, laravel, php, plugin, table
- Language: PHP
- Homepage:
- Size: 616 KB
- Stars: 16
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: .github/CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE.md
Awesome Lists containing this project
README
# Filament Price Filter
[](https://packagist.org/packages/codewithdennis/filament-price-filter)
[](https://github.com/CodeWithDennis/filament-price-filter/actions/workflows/fix-php-code-style-issues.yml)
[](https://packagist.org/packages/codewithdennis/filament-price-filter)
A simple and customizable price filter for FilamentPHP, allowing users to easily refine results based on specified price ranges.
## Installation
You can install the package via composer:
```bash
composer require codewithdennis/filament-price-filter
```You can publish the config file with:
```bash
php artisan vendor:publish --tag="filament-price-filter-config"
```This is the contents of the published config file:
```php
'USD',
'cents' => true,
];
```If you want to customize the translations, you can publish the translations file.
```bash
php artisan vendor:publish --tag="filament-price-filter-translations"
```## Usage
> [!NOTE]
> Global settings can be overridden by passing the desired values to the `PriceFilter::make('price')` method.By default, the currency is set to USD globally, but you can change it per filter to any currency you want.
```php
PriceFilter::make('price')
->currency(currency: 'EUR')
```The filter will use the locale that is used in the application `config('app.locale')`, but you can also set a custom locale.
```php
PriceFilter::make('price')
->currency(locale: 'NL'),
```A good practice is to save your currency as cents but if you saved it as a whole number you can disable the cents.
```php
PriceFilter::make('price')
->currency(cents: false),
```If you want to grab the min, max values from the database you can use the `min` and `max` methods. Here is an example of how you can use it with caching.
> [!NOTE]
> Flexible cache is a caching helper method that is introduced in Laravel 11.23.0, you can also use the default cache function.```php
->min(fn () => Cache::flexible('min_price', [30, 60], function () {
return Order::min('price') / 100; // Divide by 100 if you saved it as cents
}))
```````php
->max(fn () => Cache::flexible('max_price', [30, 60], function () {
return Order::max('price') / 100; // Divide by 100 if you saved it as cents
}))
```By default, the label will be the name of the filter, for example `PriceFilter::make('total_price')` will have a label of `Total price to` and `Total price from`. You can change the label to whatever you want.
```php
PriceFilter::make('price')
->label('Shipping price')
```## Changelog
Please see [CHANGELOG](CHANGELOG.md) for more information on what has changed recently.
## Contributing
Please see [CONTRIBUTING](.github/CONTRIBUTING.md) for details.
## Security Vulnerabilities
Please review [our security policy](../../security/policy) on how to report security vulnerabilities.
## Credits
- [CodeWithDennis](https://github.com/CodeWithDennis)
- [All Contributors](../../contributors)## License
The MIT License (MIT). Please see [License File](LICENSE.md) for more information.