plin-code/laravel-custom-fields
Laravel Custom Fields is a package for adding configurable, model-specific custom fields to Laravel applications. Define field types and validation, assign fields to models, and manage extra metadata or form inputs without schema changes—useful for CMS, CRM, and admin interfaces.
number / boolean / contains filter fixes matter for any feature where users filter records by custom values. Silent type coercion (true matching 1) is the kind of bug that surfaces as "our segment count is wrong" in a customer escalation. Stricter filters (400 on invalid input) make filtering semantics a contract we can test against rather than a source of quiet data-quality bugs.UniqueConstraintViolationException; now the later write wins deterministically, matching sequential behaviour. That is a decision to allow concurrent writes on these fields without app-level locking or a queue.composer update is low-risk, but the stricter number filter is a user-visible behaviour change (previously accepted values now return 400). Worth a check on API clients and a dashboard on 400 rates post-deploy.Adopt when:
Look elsewhere when:
For executives: This is a small, focused Laravel dependency that lets customers configure their own fields on records instead of filing tickets for schema changes. It converts a recurring engineering cost into a one-off integration, and the 1.0.1 patch shows the maintainer is actively hardening it — two real defects (a numeric filter that silently matched the wrong rows, and a race condition that produced server errors on simultaneous writes) are fixed with no migration and no configuration change. Upgrade is a one-line Composer update with near-zero operational risk; the only thing to watch is that malformed numeric filter input now returns a 400 instead of quietly returning incorrect results, which is the behaviour we want but should be verified against any external API consumers.
For engineering: v1.0.1 tightens filter input validation (true/false no longer coerced into numeric filters; both throw InvalidFilterValueException → 400, while boolean filters are untouched), and wraps the unique-value insert in a savepoint so a losing concurrent insert becomes an update — last write wins, consistent with serial execution. No migration, no config change. Verify our clients don't send booleans to number filters, add a 400-rate monitor after deploy, and treat "later write wins" as the documented contract for these fields rather than adding our own locking.
How can I help you explore Laravel packages today?