Bug-fix and quality release. No breaking changes.
Changed
- The default
Menuable::getMenuNameAttribute()now returns(string) ($this->name ?? '')instead of$this->name. Models that don't have anamecolumn (or have a null value) no longer hit aTypeErrorwhen something accesses$model->menu_name. This was the root cause one layer above issue #23.
Documentation
- New "Upgrading" section in the Menuable Trait guide covering both the v5.0.2 behavioral change to
getFilamentSearchOptionName()and the v5.0.4 null-safe default. If you upgrade across either of these, read this section. - New
RELEASING.mdcovering the cut-a-tag flow.
Process
- Adds
.github/CODEOWNERSfor default reviewer routing. - Adds
.github/pull_request_template.mdwith a CHANGELOG / tests / BC checklist. - Replaces the empty
phpstan-baseline.neonwith a comment explaining its purpose.
Tests
- Adds a
NamelessMenuabletest fixture that mirrors the exact issue #23 bug shape (nonamecolumn, display name computed viagetMenuNameAttribute()). - New
MenuItemResourceFormTesttests that exercise the Select options pipeline at lines 222 and 226 ofMenuItemResource.php. Reverting the v5.0.2 trait fix now causes these tests to fail with[null, null]instead of model labels — the exact regression the suite previously couldn't catch.
Full Changelog: v5.0.3...v5.0.4