Skip to content

Commit 6041681

Browse files
authored
Add support for Carbon serialization options (#1324)
* Add Carbon serialization option handling * Tests Added * Add changelog * Spellcheck
1 parent ddb74fb commit 6041681

File tree

5 files changed

+17
-0
lines changed

5 files changed

+17
-0
lines changed

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@ All notable changes to this project will be documented in this file.
55
[Next release](https://github.com/barryvdh/laravel-ide-helper/compare/v2.12.2...master)
66
--------------
77

8+
### Fixed
9+
- 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)
10+
811
2022-02-08, 2.12.2
912
------------------
1013
### Fixed

src/Console/ModelsCommand.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -362,6 +362,10 @@ public function castPropertiesType($model)
362362
$type = 'decimal';
363363
} elseif (Str::startsWith($type, 'custom_datetime:')) {
364364
$type = 'date';
365+
} elseif (Str::startsWith($type, 'date:')) {
366+
$type = 'date';
367+
} elseif (Str::startsWith($type, 'datetime:')) {
368+
$type = 'date';
365369
} elseif (Str::startsWith($type, 'immutable_custom_datetime:')) {
366370
$type = 'immutable_date';
367371
} elseif (Str::startsWith($type, 'encrypted:')) {

tests/Console/ModelsCommand/SimpleCasts/Models/SimpleCast.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ class SimpleCast extends Model
2424
'cast_to_collection' => 'collection',
2525
'cast_to_date' => 'date',
2626
'cast_to_datetime' => 'datetime',
27+
'cast_to_date_serialization' => 'date:Y-m-d',
28+
'cast_to_datetime_serialization' => 'datetime:Y-m-d H:i:s',
2729
'cast_to_custom_datetime' => 'custom_datetime:Y-m-d H:i:s',
2830
'cast_to_immutable_date' => 'immutable_date',
2931
'cast_to_immutable_custom_datetime' => 'immutable_custom_datetime:Y-m-d H:i:s',

tests/Console/ModelsCommand/SimpleCasts/__snapshots__/Test__test__1.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@
2424
* @property \Illuminate\Support\Collection $cast_to_collection
2525
* @property \Illuminate\Support\Carbon $cast_to_date
2626
* @property \Illuminate\Support\Carbon $cast_to_datetime
27+
* @property \Illuminate\Support\Carbon $cast_to_date_serialization
28+
* @property \Illuminate\Support\Carbon $cast_to_datetime_serialization
2729
* @property \Illuminate\Support\Carbon $cast_to_custom_datetime
2830
* @property \Carbon\CarbonImmutable $cast_to_immutable_date
2931
* @property \Carbon\CarbonImmutable $cast_to_immutable_custom_datetime
@@ -43,7 +45,9 @@
4345
* @method static \Illuminate\Database\Eloquent\Builder|SimpleCast whereCastToCollection($value)
4446
* @method static \Illuminate\Database\Eloquent\Builder|SimpleCast whereCastToCustomDatetime($value)
4547
* @method static \Illuminate\Database\Eloquent\Builder|SimpleCast whereCastToDate($value)
48+
* @method static \Illuminate\Database\Eloquent\Builder|SimpleCast whereCastToDateSerialization($value)
4649
* @method static \Illuminate\Database\Eloquent\Builder|SimpleCast whereCastToDatetime($value)
50+
* @method static \Illuminate\Database\Eloquent\Builder|SimpleCast whereCastToDatetimeSerialization($value)
4751
* @method static \Illuminate\Database\Eloquent\Builder|SimpleCast whereCastToDecimal($value)
4852
* @method static \Illuminate\Database\Eloquent\Builder|SimpleCast whereCastToDouble($value)
4953
* @method static \Illuminate\Database\Eloquent\Builder|SimpleCast whereCastToEncrypted($value)
@@ -82,6 +86,8 @@ class SimpleCast extends Model
8286
'cast_to_collection' => 'collection',
8387
'cast_to_date' => 'date',
8488
'cast_to_datetime' => 'datetime',
89+
'cast_to_date_serialization' => 'date:Y-m-d',
90+
'cast_to_datetime_serialization' => 'datetime:Y-m-d H:i:s',
8591
'cast_to_custom_datetime' => 'custom_datetime:Y-m-d H:i:s',
8692
'cast_to_immutable_date' => 'immutable_date',
8793
'cast_to_immutable_custom_datetime' => 'immutable_custom_datetime:Y-m-d H:i:s',

tests/Console/ModelsCommand/migrations/____simple_casts_table.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@ public function up(): void
2626
$table->string('cast_to_collection');
2727
$table->string('cast_to_date');
2828
$table->string('cast_to_datetime');
29+
$table->string('cast_to_date_serialization');
30+
$table->string('cast_to_datetime_serialization');
2931
$table->string('cast_to_custom_datetime');
3032
$table->string('cast_to_immutable_date');
3133
$table->string('cast_to_immutable_custom_datetime');

0 commit comments

Comments
 (0)