Skip to content

Commit b70a9f5

Browse files
thekonzbarryvdh
andauthored
add immutable_date/time:* casts (#1380)
* add immutable_date/time:* casts * fix style * Update CHANGELOG.md --------- Co-authored-by: Barry vd. Heuvel <barry@fruitcake.nl> Co-authored-by: Barry vd. Heuvel <barryvdh@gmail.com>
1 parent 9f97f7c commit b70a9f5

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.13.0...master)
66
--------------
77

8+
### Added
9+
- Add support for `immutable_date:*` and `immutable_datetime:*` casts. [#1380 / thekonz](https://github.com/barryvdh/laravel-ide-helper/pull/1380)
10+
811
2023-02-04, 2.13.0
912
------------------
1013

src/Console/ModelsCommand.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -369,6 +369,10 @@ public function castPropertiesType($model)
369369
$type = 'date';
370370
} elseif (Str::startsWith($type, 'immutable_custom_datetime:')) {
371371
$type = 'immutable_date';
372+
} elseif (Str::startsWith($type, 'immutable_date:')) {
373+
$type = 'immutable_date';
374+
} elseif (Str::startsWith($type, 'immutable_datetime:')) {
375+
$type = 'immutable_datetime';
372376
} elseif (Str::startsWith($type, 'encrypted:')) {
373377
$type = Str::after($type, ':');
374378
}

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,10 @@ class SimpleCast extends Model
2828
'cast_to_datetime_serialization' => 'datetime:Y-m-d H:i:s',
2929
'cast_to_custom_datetime' => 'custom_datetime:Y-m-d H:i:s',
3030
'cast_to_immutable_date' => 'immutable_date',
31+
'cast_to_immutable_date_serialization' => 'immutable_date:Y-m-d',
3132
'cast_to_immutable_custom_datetime' => 'immutable_custom_datetime:Y-m-d H:i:s',
3233
'cast_to_immutable_datetime' => 'immutable_datetime',
34+
'cast_to_immutable_datetime_serialization' => 'immutable_datetime:Y-m-d H:i:s',
3335
'cast_to_timestamp' => 'timestamp',
3436
'cast_to_encrypted' => 'encrypted',
3537
'cast_to_encrypted_array' => 'encrypted:array',

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,10 @@
2828
* @property \Illuminate\Support\Carbon $cast_to_datetime_serialization
2929
* @property \Illuminate\Support\Carbon $cast_to_custom_datetime
3030
* @property \Carbon\CarbonImmutable $cast_to_immutable_date
31+
* @property \Carbon\CarbonImmutable $cast_to_immutable_date_serialization
3132
* @property \Carbon\CarbonImmutable $cast_to_immutable_custom_datetime
3233
* @property \Carbon\CarbonImmutable $cast_to_immutable_datetime
34+
* @property \Carbon\CarbonImmutable $cast_to_immutable_datetime_serialization
3335
* @property integer $cast_to_timestamp
3436
* @property mixed $cast_to_encrypted
3537
* @property array $cast_to_encrypted_array
@@ -58,7 +60,9 @@
5860
* @method static \Illuminate\Database\Eloquent\Builder|SimpleCast whereCastToFloat($value)
5961
* @method static \Illuminate\Database\Eloquent\Builder|SimpleCast whereCastToImmutableCustomDatetime($value)
6062
* @method static \Illuminate\Database\Eloquent\Builder|SimpleCast whereCastToImmutableDate($value)
63+
* @method static \Illuminate\Database\Eloquent\Builder|SimpleCast whereCastToImmutableDateSerialization($value)
6164
* @method static \Illuminate\Database\Eloquent\Builder|SimpleCast whereCastToImmutableDatetime($value)
65+
* @method static \Illuminate\Database\Eloquent\Builder|SimpleCast whereCastToImmutableDatetimeSerialization($value)
6266
* @method static \Illuminate\Database\Eloquent\Builder|SimpleCast whereCastToInt($value)
6367
* @method static \Illuminate\Database\Eloquent\Builder|SimpleCast whereCastToInteger($value)
6468
* @method static \Illuminate\Database\Eloquent\Builder|SimpleCast whereCastToJson($value)
@@ -90,8 +94,10 @@ class SimpleCast extends Model
9094
'cast_to_datetime_serialization' => 'datetime:Y-m-d H:i:s',
9195
'cast_to_custom_datetime' => 'custom_datetime:Y-m-d H:i:s',
9296
'cast_to_immutable_date' => 'immutable_date',
97+
'cast_to_immutable_date_serialization' => 'immutable_date:Y-m-d',
9398
'cast_to_immutable_custom_datetime' => 'immutable_custom_datetime:Y-m-d H:i:s',
9499
'cast_to_immutable_datetime' => 'immutable_datetime',
100+
'cast_to_immutable_datetime_serialization' => 'immutable_datetime:Y-m-d H:i:s',
95101
'cast_to_timestamp' => 'timestamp',
96102
'cast_to_encrypted' => 'encrypted',
97103
'cast_to_encrypted_array' => 'encrypted:array',

tests/Console/ModelsCommand/migrations/____simple_casts_table.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,10 @@ public function up(): void
3030
$table->string('cast_to_datetime_serialization');
3131
$table->string('cast_to_custom_datetime');
3232
$table->string('cast_to_immutable_date');
33+
$table->string('cast_to_immutable_date_serialization');
3334
$table->string('cast_to_immutable_custom_datetime');
3435
$table->string('cast_to_immutable_datetime');
36+
$table->string('cast_to_immutable_datetime_serialization');
3537
$table->string('cast_to_timestamp');
3638
$table->string('cast_to_encrypted');
3739
$table->string('cast_to_encrypted_array');

0 commit comments

Comments
 (0)