Add metadata to any model with a simple cast
You can install the package via composer:
composer require marshmallow/metadata
You can publish and run the migrations with:
php artisan vendor:publish --tag="metadata-migrations"
php artisan migrate
You can publish the config file with:
php artisan vendor:publish --tag="metadata-config"
This is the contents of the published config file:
return [
/*
* The fully qualified class name of the metadata model.
*/
'metadata_model' => Marshmallow\Models\Metadata::class,
/*
* The fully qualified class name of the metadata cast.
*/
'metadata_cast' => Marshmallow\Casts\MetadataCast::class,
];
Add the following trait to your model
use Marshmallow\Metadata\Traits\HasMetadata;
use HasMetadata;
Add add cast for your required field.
use Marshmallow\Metadata\Casts\MetadataCast;
protected $casts = [
'example' => MetadataCast::class,
];
After which you can get & set your field using normal methods;
$example_model->example_field = 'This is an example';
$example_field = $example_model->example_field;
// 'This is an example'
The data from the field will be decoded & encoded to a json format.
composer test
Please see CHANGELOG for more information on what has changed recently.
Please see CONTRIBUTING for details.
Please review our security policy on how to report security vulnerabilities.
The MIT License (MIT). Please see License File for more information.