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

Useragreementsbundle Laravel Package

robertvanlienden/useragreementsbundle

A Symfony bundle for managing user agreements and terms acceptance. Define agreement versions, record which users accepted each version, and require re-acceptance when terms change, with Doctrine entities and integration points for your app.

View on GitHub
Deep Wiki
Context7

Getting Started

Start by treating v2.0.0 as the new baseline. Inspect composer.json, the README installation section, and any framework integration notes first. The package is published as a bundle, so confirm its Laravel compatibility and registration path before wiring it into an app; if it is Symfony-oriented, check whether you need a bridge, adapter, or direct form/entity usage.

Then look for the package’s config file, migrations/entities, agreement model/service, and checkbox form rendering/partials. Publish and review config, run migrations, and locate the exact checkbox field or template that renders agreement acceptance.

First use case: gate registration, checkout, or account activation on acceptance of terms/privacy policy, persisting the user ID, agreement version, and accepted timestamp. In v2.0.0, use the generated checkbox id to associate the input with its <label for="...">.

Implementation Patterns

  • Install and pin ^2.0.0, publish config/migrations/views as documented, migrate, and render the agreement checkbox through the package’s field/template rather than hand-rolling HTML.
  • Use the checkbox’s generated id for label association and accessibility. Do not hardcode the ID unless the package exposes a stable ID prefix/config option.
  • When multiple agreements appear on one page, ensure each checkbox has a unique ID. Prefer per-agreement prefixes or package-provided naming over generic IDs such as agreement.
  • Persist acceptance through the package’s service/entity layer or your own action after validation. Store agreement version, user ID, accepted timestamp, and optionally IP/user agent for auditability.
  • Check the latest required agreement version at login, checkout, or protected-route middleware; redirect or block until the current version is accepted.
  • Use Laravel validation/FormRequest rules around the checkbox, but keep business rules for “which agreement version is required” in a service or policy.
  • For upgrades from v1, update DOM snapshots, browser tests, CSS selectors, and JS that depended on the old checkbox markup. Prefer semantic selectors such as name, value, or data-* attributes over generated IDs.
  • If you override the package template or form theme, keep the new id attribute and the corresponding label association; otherwise you may silently lose the v2.0.0 behavior.

Gotchas and Tips

  • v2.0.0 is explicitly breaking because checkbox fields now receive an id attribute. Exact rendered HTML changes, so tests, CSS, JS, and custom form themes may need updates.
  • Clear compiled/cached views after upgrading so the new checkbox markup is actually rendered.
  • Watch for duplicate IDs if several agreement checkboxes are rendered in one form or page. Scope IDs by agreement slug/version or use the package’s supported prefix mechanism.
  • Do not use the generated checkbox id as a business identifier. Use the agreement name/version/value for persistence and reporting.
  • If the package is Symfony-style and you are in Laravel, verify auto-discovery/service-provider support, config publishing, and migration compatibility before committing to it. Do not assume Laravel integration from the package name alone.
  • Debug rendering issues by inspecting the final HTML, the form theme/template override chain, and the package config. If the ID is missing, first check whether you are overriding the checkbox partial.
  • Check accessibility beyond the new ID: visible labels, error messages, and aria-describedby should still point to the right elements.
  • Extension points to review: config for field names/ID prefixes, custom form themes/templates, validation rules, agreement version resolution, and persistence/event hooks.
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.
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
bernskioldmedia/laravel-harvest
bernskiold/laravel-data-scrubber
bernskiold/laravel-currency-converter
bernskiold/laravel-campaign-monitor
bernskioldmedia/laravel-autotranslate
siberfx/telegram-bot
roy-sandip/laravel-view-extended
gregsphotography/site-builder-core
roy-sandip/laravel-view
anodyne/blade-fluentui-icons
webx-ui/module-catalog-collections