- How do I install maskow/livewire-combined-request and what are the requirements?
- Install it with composer require maskow/livewire-combined-request. It requires PHP 8.1+, Laravel 10, 11, or 12, and Livewire 3 or 4. No configuration or manual service provider registration is needed for the base flow, so it is drop-in. Confirm your stack sits inside those version windows before adopting.
- How do I use one FormRequest for both a Laravel controller and a Livewire component?
- Extend CombinedFormRequest instead of Laravel's FormRequest and define rules(), authorize(), and any requiredParameters once. In an HTTP controller you type-hint the request as usual and route model binding resolves parameters automatically. In a Livewire component you call something like UpdateTeamRequest::validateLivewire($this, ['team' => $this->team]) and receive the validated data back. The same rules and authorization logic then run in both contexts.
- Does this package support Livewire file uploads and temporary files?
- Yes. The README lists full support for Livewire file uploads and temporary files alongside standard HTTP uploads. Because the class extends Laravel's native FormRequest, your usual file validation rules should apply. Test your specific upload flows, since the technical evaluation notes there is no visible test suite or CI signal to lean on.
- How does parameter binding and requiredParameters work with route model binding versus Livewire injection?
- You declare required parameters in the $requiredParameters array, and a unified parameter() accessor reads them from either source. In HTTP requests they resolve through route model binding; in Livewire you inject them explicitly when calling validateLivewire(). The evaluation warns that client-supplied Livewire parameters must never influence the authorization check, so test that sequencing explicitly for each request class.
- Is camelCase to snake_case conversion enabled by default and how do I configure it?
- CamelCase conversion is disabled by default. The package offers optional automatic camelCase to snake_case conversion for Livewire validation, plus an optional snake_case validated data return for direct database operations. Configuration is done through static methods, which means the setting is process-global rather than per request. Pick one naming convention and police mixed adoption across components.
- Which Laravel and Livewire versions does this package support?
- The stated requirements are PHP 8.1+, Laravel 10/11/12, and Livewire 3/4. Before committing, verify the actual Packagist release list and the composer.json constraints for livewire/livewire and laravel/framework, because the evaluation flags wide-open constraints as a risk vector. Livewire has shipped breaking changes across minor versions, which is the most likely failure mode given the package introspects component properties.
- How are authorization failures handled in Livewire and can I customize the notifier?
- Authorization runs through the same authorize() method in both HTTP and Livewire contexts. The package exposes static configuration methods for an authorization notifier, so you can adjust how failures surface. Be careful: the technical evaluation notes a misconfigured notifier can swallow authorization failures, so review and test that setup before relying on it in production.
- Is this package safe to use in production and is it actively maintained?
- Treat it as unsupported open source until you have proven otherwise. The evaluation reports a bus factor of 1, a single maintainer, 1 star, 0 dependents, and no visible test suite or CI badge. For validation and authorization logic, missing test coverage is the gap that matters most. Confirm automated tests, CI, and a security disclosure process before depending on it.
- How does this compare to writing my own base FormRequest or using $this->validate() in Livewire?
- The package is a thin extension of Laravel's native FormRequest that adds a static validateLivewire() entrypoint and a unified parameter() accessor. If you only share a handful of rule sets between HTTP and Livewire, a small internal base class may offer better ROI than adding a dependency. If validation is already centralized in DTOs or a spec-driven validator, this solves a problem you have already solved. The core is likely one or two classes, so forking remains a realistic fallback.
- Can I use this package in multi-tenant apps or anywhere I need per-request configuration?
- Not without care. Both the authorization notifier and the camelCase conversion flag are process-global static settings, so multi-tenant apps, queue workers, and multi-context applications cannot scope them per request. Standardizing component properties on snake_case and skipping the conversion feature avoids one of those globals. If you need per-context control, plan to vendor or fork the small core.