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.
robertmarney/lara-hierarchial-collections
simonschaufi/rule-doc-generator
emissaoja/emissaoja
blackbricksoftware/gravityforms-civicrm-form-processor
al-rahabi/fancy-crud
jinas/dhivatar-component
mltstephane/laravel-quality
bernskiold/laravel-talentlms
bernskioldmedia/laravel-form-architect
youbar/easy-crud
c-point-labs/laravel-hostyourai
dbravoan/dbcms-admin-theme-dbcms
dbravoan/dbcms-theme-db-cyber
dbravoan/dbcms-blocks-basic
dbravoan/dbcms-module-content-audit
dbravoan/dbcms-module-ai-assistant
paygate-to/paygate-php
padosoft/askmydocs-connector-base
defstudio/supercharged-carbon
bernskioldmedia/laravel-matomo