smartlabs/sonata-inline-relation-bundle
Smartlabs Sonata Inline Relation Bundle adds inline relation management to Sonata Admin, letting editors create and edit related entities directly within parent forms for faster, smoother admin workflows.
text, number with min/max/step, select with choices), per-field default values, and label_property display labels map directly to common ops requests ("let editors tag, rank, and annotate relations in one screen") without bespoke work.min_relations / max_relations with visual badges, controller-level pivotField whitelist validation, and configurable add_allowed / remove_allowed give product a vocabulary for enforcing editorial rules rather than relying on training and review.search_query_builder escape hatch are the seams where product-specific behavior (audit logging, notifications, downstream sync, complex search) attaches — deciding to standardize on these events is an architecture decision with roadmap consequences.relation_field / owner_field, and a replaced confirmation UX) informs whether the org pins versions, requires an upgrade budget per release train, or treats this as "track latest."Consider it when:
Look elsewhere, or defer, when:
For executives (one paragraph): We evaluated a mature Sonata Admin component that lets operations and editorial teams manage related records directly on the parent screen — adding, removing, reordering, and annotating links with typed pivot fields — instead of us building and maintaining a custom admin screen. It arrives with German and English translations, configurable rules that enforce how many relations must exist and who may change them, and event hooks so our own systems can react to changes. The commercial case is avoided build cost and faster delivery of admin-facing features; the cost is a small ongoing dependency-tracking obligation, since the project ships features frequently and recent configuration changes mean upgrades are deliberate rather than automatic.
For engineering leads: Treat this as a Sonata/Symfony dependency, not Laravel. Adopt via composer with a pinned constraint, not a floating one. Budget a real upgrade task per release: relation_field and owner_field are now required, relation_field accepts null for direct entity mapping, and the remove confirmation moved from the browser confirm() to a Sonata-style Bootstrap modal — all behavioral surface for existing installs. Positives worth calling out: defense-in-depth whitelist validation on pivot fields at the controller layer, unit tests for configuration semantics and event classes, server-side translation of all JS strings (no hardcoded UI copy), a search_query_builder callable for complex search, bundle-level defaults under sonata_inline_relation (search results cap, sortable, add/remove permissions) to reduce per-field boilerplate, and a Docker-based example app for a same-day spike. Validate against our admin theme (Bootstrap/Select2) and confirm the event set covers our audit and notification requirements before committing to an integration contract.
For product/design: The configuration surface now covers most of what an editor-facing relation manager needs — typed pivot inputs with validation bounds, default values, custom display labels, read-only pivot fields, relation count constraints with visual badges, and a proper modal confirmation instead of a browser alert. Remaining asks should be framed as gaps in workflow (bulk operations, inline validation messaging, ordering UX at scale) rather than basic capability.
How can I help you explore Laravel packages today?