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 Nested Builder Form Laravel Package

thiktak/filament-nested-builder-form

A Filament form component for creating nested, repeatable data structures. Build hierarchical builder forms and edit complex array or JSON content directly in Filament admin panels with a clean, intuitive interface.

View on GitHub
Deep Wiki
Context7

Getting Started

  • Install the package via Composer (composer require <vendor>/<package>) and check for a service provider auto-discovery entry. If the package ships a config file, publish it with php artisan vendor:publish --tag=<package>-config and review the defaults before first use.
  • Start with the README and the package’s test suite (tests/) to see the intended public API. In v1.0.1 the headline feature is “evaluate with parent relation,” so look for an evaluate() method or evaluator class that accepts a model and optionally resolves a parent relation.
  • First use case: call evaluate() on a model instance that has a parent relation defined (e.g. $child->evaluate('...') or $evaluator->evaluate($child, '...')). Confirm the relation name and whether the parent must be loaded or is resolved lazily.

Implementation Patterns

  • Treat the evaluator as a service: resolve it from the container or inject it into controllers, jobs, policies, or form requests rather than instantiating it directly. This keeps configuration (relation resolution, caching, custom rules) centralized.
  • For parent-relation evaluation, prefer explicit relation paths in the expression or pass the relation name as an argument if the API supports it. Example pattern: $evaluator->evaluate($model, 'parent.status', 'active') or $model->evaluate('parent.status == active') depending on the package’s syntax.
  • Integrate with Eloquent workflows: use it in model observers, validation rules, or authorization gates where a child record’s outcome depends on its parent. Keep evaluation logic in dedicated classes rather than scattering string expressions across controllers.
  • If the package supports custom evaluators or macros, register them in a service provider. This is the cleanest way to extend behaviour without forking WIP code.
  • For batch or list screens, eager-load the parent relation (with('parent')) before evaluating to avoid N+1 queries. If the package resolves parents itself, check whether it caches resolved models per request.

Gotchas and Tips

  • v1.0.1 explicitly ships “WIP code.” Pin the version in composer.json and avoid relying on undocumented methods. Expect the parent-relation API to change in minor releases.
  • Parent relation resolution can trigger lazy loading. Watch for N+1 queries in indexes and exports; eager-load relations or use loadMissing() before evaluation.
  • Config quirks: relation names, null-parent handling, and default values may be configurable. Check the config file for keys like parent_relation, null_behavior, or cache settings. If no config exists, those behaviours are likely hard-coded.
  • Debugging: log the evaluated expression, the model key, and the resolved parent key. Laravel Telescope or a simple Log::debug() around the evaluator call will show whether failures are due to missing relations or expression syntax.
  • Extension points: look for interfaces or abstract evaluator classes. If the package uses Laravel macros or a manager class, prefer extending through those hooks rather than modifying vendor code. Report unclear WIP behaviour upstream with a minimal reproduction using model factories.
  • Test parent-relation evaluation with factories that create both child and parent, and include cases where the parent is missing or soft-deleted. The “evaluate with parent relation” feature is new, so edge cases around null parents are the most likely source of bugs.
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.
microsoft/fluentui-system-icons
mmccook/php-json-canonicalization-scheme
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console
pnscripts/filament-broadquill-lite
pnscripts/laravel-sentfold-lite
vleap/mx-sdk-laravel-internal
twidpay/utils
htetmyathlaing/scout-elasticsearch-driver
artisan-toolbox/front-awesome
ls/client-assistant
users-au/laravel-client
cgv/localized-resource
noith/settings
kda/laravel-package
kda/filament-dynamic-navigation
bypersoft/signbox
pairus/product-data
fayne/laravel-filament-cms-core