Types Manager
CommunityManage any type on your app with an easy to use Resource
Author:
Fady Mondy
Package health
BetaAutomated checks of this plugin's Composer package
13 checks
-
Passed:
Current Laravel version supported
—
Package dependencies resolve together with current Laravel
13.0. -
Passed:
Current PHP version supported
—
Constraint
^8.2|^8.3|^8.4supports current PHP8.5. - Skipped: Current Symfony version supported
- Passed: Abandoned or archived — No consulted source marks the package abandoned (packagist, github).
- Warning: Commit and release recency — Low activity: last commit 185 days ago; last release 268 days ago.
-
Failed:
composer.lock not committed by library
—
composer.lockis present in the released dist archive. View details on Plumb - Warning: Dist archive is lean
- Failed: GitHub Actions pinned to SHA — View details on Plumb
- Passed: Open security advisories
- Failed: Dependabot PR responsiveness — Stale Dependabot PRs: oldest general PR is 213 days old. View details on Plumb
- Warning: Dependabot or Renovate configured — Updater does not cover Composer, which has a committed lockfile.
-
Failed:
Dependency update cooldown configured
—
No cooldown configured in
.github/dependabot.yml. View details on Plumb - Passed: Provides a security policy
filament/
namespace. Review the source and install at your own risk. Found
malware or an unresolved security issue the author won't
address?
Report it
.
Documentation
- Screenshots
- Installation
- Register Type using provider
- Config Locales
- Use Type Helper
- Use Type Column
- Auto Caching
- Use Type Base Page
- Use Type Component
- User Types Resource Hooks
- Publish Assets
- Testing
- Code Style
- PHPStan
- Other Filament Packages

Manage any type on your app in Database with easy to use Resource for FilamentPHP
#Screenshots

#Installation
composer require tomatophp/filament-types
after install your package please run this command
php artisan filament-types:install
finally register the plugin on /app/Providers/Filament/AdminPanelProvider.php
use TomatoPHP\FilamentTypes\Services\Contracts\Type;
use TomatoPHP\FilamentTypes\Services\Contracts\TypeFor;
use TomatoPHP\FilamentTypes\Services\Contracts\TypeOf;
->plugin(\TomatoPHP\FilamentTypes\FilamentTypesPlugin::make())
->types([
TypeFor::make('posts')
->label('Posts')
->types([
TypeOf::make('categories')
->label('Categories')
->register([
Type::make('news')
->name('News')
->icon('heroicon-o-newspaper')
->color('#fefefe')
])
])
])
#Register Type using provider
you can register a type from your provider using our Facade
use TomatoPHP\FilamentTypes\Facades\FilamentTypes;
use TomatoPHP\FilamentTypes\Services\Contracts\Type;
use TomatoPHP\FilamentTypes\Services\Contracts\TypeFor;
use TomatoPHP\FilamentTypes\Services\Contracts\TypeOf;
FilamentTypes::register([
TypeFor::make('products')
->label('Product')
->types([
TypeOf::make('sizes')
->label('Sizes')
->register([
Type::make('xl')
->name('XL')
->icon('heroicon-o-adjustments-horizontal')
->color('warning'),
Type::make('sm')
->name('SM')
->icon('heroicon-o-adjustments-horizontal')
->color('warning')
])
]),
]);
#Config Locales
You can change the locals within the filament-types config.
- Publish the config file/
- Modify the
localsarray to include the two character language code that applys to the language you wish to offer. EG:
'locals' = ['en'],
#Use Type Helper
you can find any type with the helper method to use it anywhere
type_of(
key: 'pending',
for: 'notes',
type: 'groups'
);
it will return type model for you.
#Use Type Column
you can use type column in your table like this
use TomatoPHP\FilamentTypes\Components\TypeColumn;
TypeColumn::make('type')
->for('users')
->type('status')
->allowDescription()
->searchable(),
#Auto Caching
on your .env add this
CACHE_STORE=array
MODEL_CACHE_STORE=array
supported cache stores are
+ Redis
+ MemCached
+ APC
+ Array
#Use Type Base Page
you can create a page for selected type by just extand base type page
use TomatoPHP\FilamentTypes\Pages\BaseTypePage;
use TomatoPHP\FilamentTypes\Services\Contracts\Type;
class NotesGroups extends BaseTypePage
{
public function getTitle(): string
{
return "Notes Groups";
}
public function getType(): string
{
return "groups";
}
public function getFor(): string
{
return "notes";
}
public function getBackUrl()
{
return ManageNotes::getUrl(); // TODO: Change the autogenerated stub
}
public function getTypes(): array
{
return [
Type::make('todo')
->name("TODO")
->color('#1461e3')
->icon('heroicon-o-list-bullet'),
Type::make('ideas')
->name("Ideas")
->color('#13e0da')
->icon('heroicon-o-sparkles'),
Type::make('saved')
->name("Saved")
->color('#29a82e')
->icon('heroicon-o-arrow-down-on-square'),
];
}
}
it will be not appear on the navigation menu by default but you can change that by just use this method
public static function shouldRegisterNavigation(): bool
{
return true;
}
#Use Type Component
if you like to use a type as a package we create a blade component for you to make it easy to use anywhere on your app like this
<x-tomato-type :type="$type" label="Group" />
#User Types Resource Hooks
we have add a lot of hooks to make it easy to attach actions, columns, filters, etc
#Table Columns
use TomatoPHP\FilamentTypes\Filament\Resources\TypeResource\Table\TypeTable;
public function boot()
{
TypeTable::register([
\Filament\Tables\Columns\TextColumn::make('something')
]);
}
#Table Actions
use TomatoPHP\FilamentTypes\Filament\Resources\TypeResource\Table\TypeActions;
public function boot()
{
TypeActions::register([
\Filament\Tables\Actions\ReplicateAction::make()
]);
}
#Table Filters
use TomatoPHP\FilamentTypes\Filament\Resources\TypeResource\Table\TypeFilters;
public function boot()
{
TypeFilters::register([
\Filament\Tables\Filters\SelectFilter::make('something')
]);
}
#Table Bulk Actions
use TomatoPHP\FilamentTypes\Filament\Resources\TypeResource\Table\TypeBulkActions;
public function boot()
{
TypeBulkActions::register([
\Filament\Tables\BulkActions\DeleteAction::make()
]);
}
#From Components
use TomatoPHP\FilamentTypes\Filament\Resources\TypeResource\Form\TypeForm;
public function boot()
{
TypeForm::register([
\Filament\Forms\Components\TextInput::make('something')
]);
}
#Page Actions
use TomatoPHP\FilamentTypes\Filament\Resources\TypeResource\Actions\ManagePageActions;
public function boot()
{
ManagePageActions::register([
Filament\Actions\Action::make('action')
]);
}
#Publish Assets
you can publish config file by use this command
php artisan vendor:publish --tag="filament-types-config"
you can publish views file by use this command
php artisan vendor:publish --tag="filament-types-views"
you can publish languages file by use this command
php artisan vendor:publish --tag="filament-types-lang"
you can publish migrations file by use this command
php artisan vendor:publish --tag="filament-types-migrations"
#Testing
if you like to run PEST testing just use this command
composer test
#Code Style
if you like to fix the code style just use this command
composer format
#PHPStan
if you like to check the code by PHPStan just use this command
composer analyse
#Other Filament Packages
Checkout our Awesome TomatoPHP
The author
Manage any type on your app with an easy to use Resource
From the same author
Menu Generator
Menu view generator using view component
Author:
Fady Mondy
Translations Manager
Manage your translation with DB and cache, you can scan an collect translation strings like `trans()` and `__()`, and translate them using UI
Author:
Fady Mondy
Meta Manager
Convert any model on your app to pluggable model using Meta and get ready to use relation manager on FilamentPHP panel
Author:
Fady Mondy
Sticky Notes
Add Sticky Notes to your dashboard with tons of options and style.
Author:
Fady Mondy
Featured Plugins
A selection of plugins curated by the Filament team
Custom Dashboards
Let your users build and share their own dashboards with a drag-and-drop interface. Define your data sources in PHP and let them do the rest.
Filament
Blueprint
Filament Blueprint is a premium Laravel Boost extension that helps AI agents produce accurate, detailed implementation plans and security reports for Filament apps.
Filament
Custom Fields
Eliminate custom field migrations forever. Let your users create and manage form fields directly in Filament admin panels with 20+ built-in field types, validation, and zero database changes.
Relaticle