Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message
Filament Tree Table

Filament Tree Table Laravel Package

kisame76/filament-tree-table

Expandable parent/child tree rows for Filament v4 and v5 tables. Show top-level parents, expand with a chevron to reveal inline child rows while search and filters stay correct. Includes expand-all/collapse-all actions and optional pagination by root.

View on GitHub
Deep Wiki
Context7

At a glance

Frequently asked questions about Filament Tree Table
How do I install kisame76/filament-tree-table?
Run composer require kisame76/filament-tree-table, then run php artisan filament:assets so the package CSS is published alongside your other Filament assets. The CSS auto-registers with Filament, so there are no service providers to add and no migrations to run. Re-run filament:assets on every deploy.
Does filament-tree-table support Filament v5, and which Filament 4 versions work?
The package supports Filament v5 and Filament v4.3 or newer. Release 1.3.1 tightened the v4 constraint from ^4.0 to ^4.3, but Filament 5 support is unaffected by that change and is included in the test matrix. If a panel is pinned to Filament 4.0 through 4.2, Composer will fail dependency resolution until that pin is lifted.
What PHP and Laravel versions does this Filament tree table package require?
You need PHP 8.2 or newer and a Laravel 11, 12, or 13 application running Filament 4.3+ or 5.x. The CI matrix covers PHP 8.2 through 8.5 against Laravel 11/12/13 and Filament 4/5, plus a lowest-versions Composer run. PHP 8.1 and Laravel 10 are out of scope for this release.
How do I show parent and child rows in a Filament table?
Apply the tree behaviour to your Filament table so only top-level parents render initially; the package adds a chevron toggle that expands inline child rows while keeping all your existing columns. Depth is derived from parent_id, so child rows nest under their real parent without extra schema. You can mark children with a corner-arrow glyph, a coloured accent bar, or an optional per-depth tint, and mix or switch styles freely.
Does the tree table keep search and filters working correctly?
Yes. The package is query-aware: you can either flatten matches into a single flat result list or keep the tree structure and reveal each match together with its ancestor path, auto-expanded, with non-matching ancestors dimmed as context. This avoids the common failure where filtering hides a child because its parent is no longer in the result set.
How do I add expand-all and collapse-all buttons to a Filament table header?
The package ships expand-all and collapse-all header actions, so users can open or close the whole tree in a single click. These actions work with Filament's session-backed column persistence, so the expanded state survives navigation within the panel. Because it relies on persistColumnsInSession() from Filament 4.3, it is worth a quick smoke test in each panel configuration you run.
How does paginateByRoot() work and when should I use it?
Calling paginateByRoot() makes the paginator count root records instead of individual rows, so each family stays on one page rather than being split across page boundaries. Use it when splitting a parent from its children would confuse editors browsing the tree. It is optional, and without it the table paginates as usual.
Do I need a level or depth column in the database for the tree?
No stored level or depth column is required, because depth is derived from each record's parent_id. Ordering is database-agnostic and works on Postgres, MySQL, and SQLite. Custom sibling ordering is supported through defaultSort() plus full sortable(query: ...) and relationship columns inside the tree.
Why does composer update fail on Filament 4.0 to 4.2 after upgrading this package?
Version 1.3.1 tightened the v4 constraint from ^4.0||^5.0 to ^4.3||^5.0, so any project held below Filament 4.3 will fail dependency resolution instead of breaking at runtime. That early CI failure is the better outcome, but it needs to be planned for. The fix is upgrading whichever package is pinning Filament down, or staying on the previous plugin release, which still works on 4.0 through 4.2. Because Composer normally resolves the newest 4.x, most projects land on 4.3+ without any intervention.
Is the package tested, and how do I run its test suite?
The release adds Livewire-mounted rendering tests that actually draw rows and exercise the toggle, chevrons, expand/collapse, and search, rather than only inspecting the generated query. Those interactive paths are exactly where table plugins usually break. You can clone the repository and run the suite locally with Composer to verify behaviour against your own Filament version.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
andydefer/laravel-notification
adachsoft/cli-process-tester
jhaskell13/laraflow
sebastienheyd/boilerplate-media-manager
ccast/tagixo-primix
pretendtrue/laravel-builder
sawmainek/laravel-scout-tntsearch-driver
tomshaw/laravel-calendar-table
dibakar/laravel-ownership
steadrun/laravel-monitor
labyrinthe/connect-laravel
elmogy/layan
drewdan/sentinel-client
dskripchenko/laravel-llm
fatryst/nuonuo
stevenay/myanfont
gmostafa/php-graphql-client
xeviant/paystack
snowsoft/faker
meditationsteps/blogetc