From 60416814958aa88f6d2c2e087e4be418176a21e7 Mon Sep 17 00:00:00 2001 From: FLeudts <49487344+FLeudts@users.noreply.github.com> Date: Fri, 4 Mar 2022 09:12:42 +0100 Subject: [PATCH] Add support for Carbon serialization options (#1324) * Add Carbon serialization option handling * Tests Added * Add changelog * Spellcheck --- CHANGELOG.md | 3 +++ src/Console/ModelsCommand.php | 4 ++++ .../Console/ModelsCommand/SimpleCasts/Models/SimpleCast.php | 2 ++ .../SimpleCasts/__snapshots__/Test__test__1.php | 6 ++++++ .../ModelsCommand/migrations/____simple_casts_table.php | 2 ++ 5 files changed, 17 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2d23752..b4bc661 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,9 @@ All notable changes to this project will be documented in this file. [Next release](https://github.com/barryvdh/laravel-ide-helper/compare/v2.12.2...master) -------------- +### Fixed +- Fix date and datetime handling for attributes that set a serialization format option for the Carbon instance [#1324 / FLeudts](https://github.com/barryvdh/laravel-ide-helper/pull/1324) + 2022-02-08, 2.12.2 ------------------ ### Fixed diff --git a/src/Console/ModelsCommand.php b/src/Console/ModelsCommand.php index caebed7..fd8dd01 100644 --- a/src/Console/ModelsCommand.php +++ b/src/Console/ModelsCommand.php @@ -362,6 +362,10 @@ class ModelsCommand extends Command $type = 'decimal'; } elseif (Str::startsWith($type, 'custom_datetime:')) { $type = 'date'; + } elseif (Str::startsWith($type, 'date:')) { + $type = 'date'; + } elseif (Str::startsWith($type, 'datetime:')) { + $type = 'date'; } elseif (Str::startsWith($type, 'immutable_custom_datetime:')) { $type = 'immutable_date'; } elseif (Str::startsWith($type, 'encrypted:')) { diff --git a/tests/Console/ModelsCommand/SimpleCasts/Models/SimpleCast.php b/tests/Console/ModelsCommand/SimpleCasts/Models/SimpleCast.php index 5d8e3dc..420ab74 100644 --- a/tests/Console/ModelsCommand/SimpleCasts/Models/SimpleCast.php +++ b/tests/Console/ModelsCommand/SimpleCasts/Models/SimpleCast.php @@ -24,6 +24,8 @@ class SimpleCast extends Model 'cast_to_collection' => 'collection', 'cast_to_date' => 'date', 'cast_to_datetime' => 'datetime', + 'cast_to_date_serialization' => 'date:Y-m-d', + 'cast_to_datetime_serialization' => 'datetime:Y-m-d H:i:s', 'cast_to_custom_datetime' => 'custom_datetime:Y-m-d H:i:s', 'cast_to_immutable_date' => 'immutable_date', 'cast_to_immutable_custom_datetime' => 'immutable_custom_datetime:Y-m-d H:i:s', diff --git a/tests/Console/ModelsCommand/SimpleCasts/__snapshots__/Test__test__1.php b/tests/Console/ModelsCommand/SimpleCasts/__snapshots__/Test__test__1.php index acb861f..ea2617a 100644 --- a/tests/Console/ModelsCommand/SimpleCasts/__snapshots__/Test__test__1.php +++ b/tests/Console/ModelsCommand/SimpleCasts/__snapshots__/Test__test__1.php @@ -24,6 +24,8 @@ use Illuminate\Database\Eloquent\Model; * @property \Illuminate\Support\Collection $cast_to_collection * @property \Illuminate\Support\Carbon $cast_to_date * @property \Illuminate\Support\Carbon $cast_to_datetime + * @property \Illuminate\Support\Carbon $cast_to_date_serialization + * @property \Illuminate\Support\Carbon $cast_to_datetime_serialization * @property \Illuminate\Support\Carbon $cast_to_custom_datetime * @property \Carbon\CarbonImmutable $cast_to_immutable_date * @property \Carbon\CarbonImmutable $cast_to_immutable_custom_datetime @@ -43,7 +45,9 @@ use Illuminate\Database\Eloquent\Model; * @method static \Illuminate\Database\Eloquent\Builder|SimpleCast whereCastToCollection($value) * @method static \Illuminate\Database\Eloquent\Builder|SimpleCast whereCastToCustomDatetime($value) * @method static \Illuminate\Database\Eloquent\Builder|SimpleCast whereCastToDate($value) + * @method static \Illuminate\Database\Eloquent\Builder|SimpleCast whereCastToDateSerialization($value) * @method static \Illuminate\Database\Eloquent\Builder|SimpleCast whereCastToDatetime($value) + * @method static \Illuminate\Database\Eloquent\Builder|SimpleCast whereCastToDatetimeSerialization($value) * @method static \Illuminate\Database\Eloquent\Builder|SimpleCast whereCastToDecimal($value) * @method static \Illuminate\Database\Eloquent\Builder|SimpleCast whereCastToDouble($value) * @method static \Illuminate\Database\Eloquent\Builder|SimpleCast whereCastToEncrypted($value) @@ -82,6 +86,8 @@ class SimpleCast extends Model 'cast_to_collection' => 'collection', 'cast_to_date' => 'date', 'cast_to_datetime' => 'datetime', + 'cast_to_date_serialization' => 'date:Y-m-d', + 'cast_to_datetime_serialization' => 'datetime:Y-m-d H:i:s', 'cast_to_custom_datetime' => 'custom_datetime:Y-m-d H:i:s', 'cast_to_immutable_date' => 'immutable_date', 'cast_to_immutable_custom_datetime' => 'immutable_custom_datetime:Y-m-d H:i:s', diff --git a/tests/Console/ModelsCommand/migrations/____simple_casts_table.php b/tests/Console/ModelsCommand/migrations/____simple_casts_table.php index 76b8f3a..d83a551 100644 --- a/tests/Console/ModelsCommand/migrations/____simple_casts_table.php +++ b/tests/Console/ModelsCommand/migrations/____simple_casts_table.php @@ -26,6 +26,8 @@ class SimpleCastsTable extends Migration $table->string('cast_to_collection'); $table->string('cast_to_date'); $table->string('cast_to_datetime'); + $table->string('cast_to_date_serialization'); + $table->string('cast_to_datetime_serialization'); $table->string('cast_to_custom_datetime'); $table->string('cast_to_immutable_date'); $table->string('cast_to_immutable_custom_datetime');