Weave Code
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
Ordered Form Bundle

Ordered Form Bundle Laravel Package

alxishin/ordered-form-bundle

View on GitHub
Deep Wiki
Context7

Provides a form ordering support for your Symfony2 project.

Frequently asked questions about Ordered Form Bundle
Can I use IvoryOrderedFormBundle directly in Laravel without Symfony?
No, this bundle is Symfony-specific and relies on its FormBuilder and EventDispatcher. For Laravel, you’d need to either port its core logic (e.g., the PositionType class) or wrap it in a Symfony microservice called via API. A facade layer using spatie/laravel-symfony-bundle could bridge some functionality, but full integration requires custom work.
What Laravel versions does this bundle support?
The bundle itself only supports Symfony 2.7–4.0. Laravel compatibility depends on your integration approach. If you port the logic, target Laravel 8+ (for modern form handling). For facade-based use, ensure your Laravel version aligns with the Symfony version the facade targets (e.g., Laravel 9 with Symfony 6+ may conflict).
How do I handle form field ordering in Laravel without this bundle?
For simple cases, add a `position` column to your database table and use Eloquent’s `orderBy('position')` in queries. For drag-and-drop UIs, pair SortableJS with AJAX/PUT requests to update positions via middleware. Libraries like Livewire or Inertia.js can manage client-side ordering with server-side validation via `$request->validate()`.
Does this bundle support nested forms (e.g., tabbed or multi-step forms)?
The bundle’s documentation doesn’t explicitly cover nested forms, but its core logic (position-based ordering) could extend to them. For Laravel, you’d need to manually implement nested position handling in your Eloquent models or use a package like laravel-nestedset for hierarchical ordering. Test thoroughly—nested forms may introduce validation or event-dispatching conflicts.
What’s the best way to persist form ordering in Laravel?
Add a `position` column to your database table (e.g., `integer` or `decimal` for fine-grained ordering). Use Eloquent’s `orderBy('position')` in queries or a scope like `public function scopeOrdered($query) { return $query->orderBy('position'); }`. For session-based ordering, store positions in `$request->session()->put('form_order', [...])` and sync to the DB on submission.
Are there Laravel alternatives to IvoryOrderedFormBundle?
Yes. For drag-and-drop forms, consider SortableJS + custom middleware. For database-backed ordering, use Eloquent with a `position` column. Packages like `spatie/laravel-activitylog` (for tracking changes) or `laravel-nestedset` (for hierarchical data) can complement ordering. If you need Symfony-like form events, explore `laravel-form-components` or build a custom trait.
How do I test form ordering in Laravel before committing to this bundle?
Start with a proof of concept: create a `position` column in a test table, manually update positions via Tinker (`Model::where('id', 1)->update(['position' => 2]))`, and verify ordering with `Model::orderBy('position')->get()`. For frontend testing, use SortableJS in a Blade view and mock AJAX updates with Laravel’s HTTP tests. Validate edge cases like duplicate positions or concurrent updates.
Will this bundle work with Livewire or Inertia.js for client-side ordering?
Indirectly, but you’ll need to adapt it. For Livewire, handle ordering in the component’s `mount()` or `hydrate()` methods, then sync to the server via `$this->emit()` or `$this->dispatch()`. Inertia.js can use SortableJS to reorder fields client-side, then submit a PUT request to Laravel to update the `position` column. The bundle’s server-side logic would only handle validation/persistence.
What are the performance implications of using this bundle in Laravel?
Since the bundle isn’t natively Laravel-compatible, performance depends on your integration. Direct database queries with `orderBy('position')` are efficient, but event listeners (if ported) could add overhead. For large forms (50+ fields), test with Laravel’s query profiler (`DB::enableQueryLog()`) and consider caching ordered results if updates are infrequent. Avoid overusing event dispatchers for ordering.
How do I handle CSRF protection and form tampering for ordered fields in Laravel?
Laravel’s built-in CSRF protection (via `@csrf` in Blade or `VerifyCsrfToken` middleware) covers ordered fields if they’re submitted via standard forms. For AJAX/PUT requests, include the CSRF token in headers (`X-CSRF-TOKEN`). To prevent tampering, validate position updates server-side (e.g., ensure `position` is numeric and within bounds) and use Laravel’s `validate()` method to reject malformed data.
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.
besmartand-pro/php-quality-config
sentix/ai-chatbot
terminal42/code-quality-tools
codifyo/ts-generator-bundle
testo/fiber
mintobit/jobqueue
a4sex/maintenance-bundle
a4sex/entity-date-update
a4sex/client-identifier
a4sex/base-utilites
a4sex/key-value-storage
a4sex/micro-status
chilldev/dependency-injection-extra
datinglibre/datinglibre-app-api
biberltd/corebundle
bricre/symfony-bundle-test
biberltd/logbundle
dominium/http-adapter-bundle
dominium/google-analytics
a4sex/auto-clean-entity