PHPackages                             maskow/livewire-combined-request - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Validation &amp; Sanitization](/categories/validation)
4. /
5. maskow/livewire-combined-request

ActiveLibrary[Validation &amp; Sanitization](/categories/validation)

maskow/livewire-combined-request
================================

Shared FormRequest base that works for both Laravel HTTP controllers and Livewire 3/4 components. Write validation rules once, use them everywhere.

v1.2.1(1mo ago)11.4k↓77.7%Apache-2.0PHPPHP ^8.1CI passing

Since Dec 2Pushed 1mo agoCompare

[ Source](https://github.com/MaskowSoftwares/livewire-combined-request)[ Packagist](https://packagist.org/packages/maskow/livewire-combined-request)[ Docs](https://github.com/MaskowSoftwares/livewire-combined-request#readme)[ RSS](/packages/maskow-livewire-combined-request/feed)WikiDiscussions main Synced 2d ago

READMEChangelog (6)Dependencies (8)Versions (8)Used By (0)

Livewire Combined Request
=========================

[](#livewire-combined-request)

A powerful Laravel FormRequest base class that seamlessly works in both HTTP controllers and Livewire v3/v4 components. Write your validation rules, authorization logic, and parameter requirements once—use them everywhere. Perfect for Laravel 10/11/12 projects that want to eliminate duplicated validation between APIs and Livewire components.

Features
--------

[](#features)

- 🔄 **Unified API**: One FormRequest for HTTP controllers, APIs, and Livewire components
- 🔒 **Parameter Requirements**: Declare required parameters that are automatically validated
- 🛡️ **Authorization**: Identical authorization logic across all contexts
- 📁 **File Uploads**: Full support for Livewire file uploads and temporary files
- 🎯 **Parameter Binding**: Elegant parameter system that works with route model binding and manual injection
- 🐫 **Smart Naming**: Optional automatic camelCase ↔ snake\_case conversion for Livewire validation (disabled by default)
- 💾 **Database Ready**: Optional snake\_case validated data return for direct database operations
- 🚫 **Zero Configuration**: Drop it into any Laravel + Livewire 3/4 app

Why use this?
-------------

[](#why-use-this)

Stop writing validation rules twice! Whether you're building an API endpoint or a Livewire component, use the same FormRequest with identical rules, authorization, and parameter handling.

**Before:**

```
// API Controller
class UpdateTeamRequest extends FormRequest { /* rules here */ }

// Livewire Component
public function save() {
    $this->validate([ /* same rules again! */ ]);
    // Manual authorization check...
    // Manual parameter handling...
}
```

**After:**

```
// One request class for everything
class UpdateTeamRequest extends CombinedFormRequest {
    protected array $requiredParameters = ['team', 'workspace'];

    public function authorize() { /* works everywhere */ }
    public function rules() { /* works everywhere */ }
}

// API Controller
public function update(UpdateTeamRequest $request, Team $team) { /* automatic */ }

// Livewire Component
public function save() {
    $validated = UpdateTeamRequest::validateLivewire($this, [
        'team' => $this->team,
        'workspace' => $this->workspace
    ]);
}
```

Requirements
------------

[](#requirements)

- PHP 8.1+
- Laravel 10 / 11 / 12
- Livewire 3 / 4

Installation
------------

[](#installation)

```
composer require maskow/livewire-combined-request
```

No configuration or manual service provider registration is required.

Quick start
-----------

[](#quick-start)

### 1) Create a request with required parameters

[](#1-create-a-request-with-required-parameters)

```
