PHPackages                             nickescobedo/cambia - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. nickescobedo/cambia

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

nickescobedo/cambia
===================

Easily cast your request attributes.

v1.1.0(1y ago)29MITPHPPHP ^8.2|^8.3

Since Jul 23Pushed 1y ago1 watchersCompare

[ Source](https://github.com/nickescobedo/Cambia)[ Packagist](https://packagist.org/packages/nickescobedo/cambia)[ RSS](/packages/nickescobedo-cambia/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (5)Dependencies (2)Versions (6)Used By (0)

About
=====

[](#about)

Cast request input in Laravel.

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

[](#installation)

`composer require nickescobedo/cambia`

Basic Usage
-----------

[](#basic-usage)

1. Add `NickEscobedo\Cambia\CastRequestAttributes` trait to your request class.
2. Add a `casts` function to your request class that returns an array.
3. Access casts via request attributes `$request->castedInput('inputKey')`. Note: The request key must have be validated in rules before it will attempt to cast.

Example
-------

[](#example)

```
class Cast extends FormRequest
{
    use CastRequestAttributes;

    public function rules(): array
    {
        return [
            'toBoolean' => 'string', // Fields not present in validation will not cast
        ];
    }

    public function casts(): array
    {
        return [
            'toBoolean' => 'boolean',
        ];
    }
}
```

`$request->castedInput('toBoolean')` will return a boolean value.

Available Casts
---------------

[](#available-casts)

- int
- integer
- float
- double
- decimal:int
- string
- boolean
- object
- array
- json
- collection
- date
- datetime or datetime:format
- immutable\_date
- immutable\_datetime or immutable\_datetime:format
- timestamp

Custom Casts
------------

[](#custom-casts)

Custom casts allow for more complex casting logic. Enums and custom classes can be used. Custom cast classes must implement `NickEscobedo\Cambia\CastsRequestAttributes`.

### Enum

[](#enum)

```
enum Status: string
{
    case Pending = 'pending';
}
```

```
public function casts(): array
{
    return [
        'status' => Status::class,
    ];
}
```

### Custom Cast Class

[](#custom-cast-class)

The class must implement `NickEscobedo\Cambia\CastsRequestAttributes`.

```
use Illuminate\Http\Request;
use NickEscobedo\Cambia\CastsRequestAttributes;

class JsonCast implements CastsRequestAttributes
{

    public function get(Request $request, string $key, mixed $value, array $attributes)
    {
        return json_decode($value, true);
    }
}
```

```
class Cast extends FormRequest
{
    use CastRequestAttributes;

    public function rules(): array
    {
        return [
            'toBoolean' => 'string', // Fields not present in validation will not cast
        ];
    }

    public function casts(): array
    {
        return [
            'toBoolean' => JsonCast::class,
        ];
    }
}
```

###  Health Score

30

—

LowBetter than 65% of packages

Maintenance38

Infrequent updates — may be unmaintained

Popularity7

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity58

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~27 days

Total

5

Last Release

547d ago

Major Versions

v0.1 → v1.02024-07-24

### Community

Maintainers

![](https://www.gravatar.com/avatar/e7a04734eca70c7d9b11e35d812d1f09bafb34845c30b4347aaf4dfabc23de19?d=identicon)[nickescobedo](/maintainers/nickescobedo)

---

Top Contributors

[![nickescobedo](https://avatars.githubusercontent.com/u/2837169?v=4)](https://github.com/nickescobedo "nickescobedo (13 commits)")

### Embed Badge

![Health badge](/badges/nickescobedo-cambia/health.svg)

```
[![Health](https://phpackages.com/badges/nickescobedo-cambia/health.svg)](https://phpackages.com/packages/nickescobedo-cambia)
```

###  Alternatives

[yajra/laravel-datatables-oracle

jQuery DataTables API for Laravel

4.9k33.8M335](/packages/yajra-laravel-datatables-oracle)[psalm/plugin-laravel

Psalm plugin for Laravel

3274.9M308](/packages/psalm-plugin-laravel)[watson/active

Laravel helper for recognising the current route, controller and action

3253.6M14](/packages/watson-active)[spatie/laravel-pjax

A pjax middleware for Laravel 5

513371.8k11](/packages/spatie-laravel-pjax)[statikbe/laravel-cookie-consent

Cookie consent modal for EU

213396.7k](/packages/statikbe-laravel-cookie-consent)[laragraph/utils

Utilities for using GraphQL with Laravel

2113.8M7](/packages/laragraph-utils)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
