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

Sonata Inline Relation Bundle Laravel Package

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.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Build vs. buy for admin tooling: this bundle replaces hand-rolled inline relation editors in Sonata Admin with a configurable, maintained component — a credible "buy/consume" answer for any roadmap item framed as "let ops manage related records without leaving the parent form."
  • Feature scope for an admin UX epic: configurable pivot field types (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.
  • Data-integrity and guardrail requirements: 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.
  • Internationalization as a launch gate: shipped EN/DE XLIFF plus server-supplied translated JS strings means a German-market admin rollout is not blocked by hardcoded English UI — a common late-stage blocker in DACH-facing products.
  • Platform/ecosystem investment signals: Symfony Event Dispatcher integration (add/remove/update/reorder events) and a 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.
  • Onboarding and demo-ability: the self-contained Docker example app shortens time-to-evaluation for new engineers and gives sales/solutions a working demo surface, which affects how confidently the feature can be committed to customers.
  • Dependency policy: the 1.0.0 → 1.0.19 trajectory (19 releases, feature-level additions inside patch versions, newly required 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."

When to Consider This Package

Consider it when:

  • The product runs Symfony + Sonata Admin. Despite being a PHP package, this is a Sonata bundle — it is not a Laravel package, and the assessment should say so plainly to avoid a mis-scoped spike.
  • Users need to view and edit many-to-many / pivot data inline on the parent entity's form, and the alternative is a custom CRUD screen or a separate relation-management page.
  • The relation editor needs rich pivot semantics (free text, numeric with bounds, dropdown choices, unique-boolean ordering, defaults on new rows) rather than a simple attach/detach.
  • There is a German-language or bilingual admin audience, or i18n is on the near roadmap.
  • You need integration hooks (events for add/remove/update/reorder) to drive audit trails, notifications, or downstream systems without forking.
  • Editorial constraint enforcement (minimum/maximum relations, controlled add/remove permissions) is a business rule, not a nice-to-have.

Look elsewhere, or defer, when:

  • The stack is Laravel, Livewire, Nova, Filament, or Inertia — the concepts transfer, the code does not. Do not let "it's a PHP package" pull it into a Laravel evaluation.
  • You need locales beyond EN/DE; the shipped catalogue is two languages, so additional markets mean owning translation maintenance.
  • Your dependency policy requires stable minor-version semantics. This release train adds features in patch increments and makes previously optional configuration required — treat upgrades as planned work, not as drops.
  • You are not prepared to own frontend adjacency: Select2, Bootstrap modals, and data-attribute plumbing mean the admin theme becomes part of your compatibility surface.
  • The need is a one-off, tiny relation where a native Sonata form type or a few lines of custom code is cheaper than adopting and tracking a bundle.

How to Pitch It (Stakeholders)

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.

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.
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel
draftsmaninc/draftsman
square-bit/laravel-volition
himito/laravel-mailman
htinlynn/genius-helper
maco-studios/hephaestus
elmogy/larafast
xeviant/laravel-paystack
gorilladash/laravel-website-sdk
martialbe/flysystem-oss
chondal/3312client
jeroen-g/flickr
opscale-co/nova-genbi
itsjustvita/laravel-retention
tequilarapido/trackit
gregsphotography/site-builder-filament
cabaoctavio/laravel-query-log