laravel-json-casted maintained by novius
Description
A package to cast json fields, each sub-keys is castable
Author
Last update
2026/03/27 16:45
(dev-main)
License
Downloads
4 898
Laravel Json Casted
Introduction
A package to cast json fields, each sub-keys is castable
Requirements
- PHP >= 8.2
- Laravel 10.0
Installation
You can install the package via composer:
composer require novius/laravel-json-casted
If you use laravel-ide-helper, add ModelHasJsonWithCastsHook in its configuration file :
'model_hooks' => [
// ...
\Novius\LaravelJsonCasted\Hooks\ModelHasJsonWithCastsHook::class,
],
Usage
Define casts by a method
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Novius\LaravelJsonCasted\Services\JsonCasted;
class Post extends Model {
protected $casts = [
'extras' => JsonCasted::class.':getExtrasCasts',
];
public function getExtrasCasts(): array
{
return [
'date' => 'date:Y-m-d',
];
}
}
Define casts by a class
namespace App\Casts;
use Novius\LaravelJsonCasted\Services\JsonCasted;
class Extras extends JsonCasted {
protected static array $casts = [
'date' => 'date:Y-m-d',
];
}
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use App\Casts\Extras;
class Post extends Model {
protected $casts = [
'extras' => Extras::class,
];
}
Use casted field
$model = Post::first();
// $model->extras is now a Fluent instance
// $model->extras->date is a now Carbon class
$model->extras->date->lt(now());
CS Fixer
Lint your code with Laravel Pint using:
composer run cs-fix
Licence
This package is under GNU Affero General Public License v3 or (at your option) any later version.