Looking to hire Laravel developers? Try LaraJobs
This package is not available.

laravel-json-marshaller maintained by flashport

Description
A laravel wrapper for the lib flashport/json-marshaller
Last update
2025/03/13 13:16 (dev-main)
License
Links
Downloads
1 467

Comments
comments powered by Disqus

Laravel Json Marshaller

A laravel wrapper for the json-marshaller lib.

Installation:

    composer require flashport/laravel-json-marshaller

Usage:

There are two main ways of using this lib, it is possible to use existing target cast objects without modifying them, modifying only the model which performs the cast.

Option 1: Directly on the model

On the $casts array, specify the JsonMarshallable::class and the target class after :. This will ensure the target class gets passed as an argument to the Marshaller.

/**
 * The attributes that should be cast.
 *
 * @var array<string, string>
 */
protected $casts = [
    'metadata'      => JsonMarshallable::class . ":" . Metadata::class,
    'customFields'  => JsonMarshallable::class . ":" . CustomField::class,
    'active'        => 'bool',
];

Option 2: On the target classes

Target class:

Make sure to extend the AsJsonMarshallable class on your target classes.


use LaravelJsonMarshaller\Castables\AsJsonMarshallable;

class CustomField extends AsJsonMarshallable
{
    //...
}

Model:

On the model, specify only the target class name you want to cast into.

/**
 * The attributes that should be cast.
 *
 * @var array<string, string>
 */
protected $casts = [
    'metadata'      => Metadata::class,
    'customFields'  => CustomField::class,
    'active'        => 'bool',
];