Add Data Eloquent casting
This commit is contained in:
parent
0c97342f8e
commit
f19f748c11
|
@ -3,11 +3,11 @@
|
||||||
namespace App\Form\Data;
|
namespace App\Form\Data;
|
||||||
|
|
||||||
use App\Fileshare\Data\FileshareResourceData;
|
use App\Fileshare\Data\FileshareResourceData;
|
||||||
use App\Form\Fields\Field;
|
|
||||||
use Spatie\LaravelData\Attributes\MapInputName;
|
use Spatie\LaravelData\Attributes\MapInputName;
|
||||||
use Spatie\LaravelData\Attributes\MapOutputName;
|
use Spatie\LaravelData\Attributes\MapOutputName;
|
||||||
use Spatie\LaravelData\Data;
|
use Spatie\LaravelData\Data;
|
||||||
use Spatie\LaravelData\Mappers\SnakeCaseMapper;
|
use Spatie\LaravelData\Mappers\SnakeCaseMapper;
|
||||||
|
use Spatie\LaravelData\Support\EloquentCasts\DataEloquentCast;
|
||||||
|
|
||||||
#[MapInputName(SnakeCaseMapper::class)]
|
#[MapInputName(SnakeCaseMapper::class)]
|
||||||
#[MapOutputName(SnakeCaseMapper::class)]
|
#[MapOutputName(SnakeCaseMapper::class)]
|
||||||
|
@ -16,4 +16,10 @@ class ExportData extends Data
|
||||||
public function __construct(public ?FileshareResourceData $root = null, public ?string $groupBy = null, public ?string $toGroupField = null)
|
public function __construct(public ?FileshareResourceData $root = null, public ?string $groupBy = null, public ?string $toGroupField = null)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** @return DataEloquentCast<self> */
|
||||||
|
public static function castUsing(array $arguments): DataEloquentCast
|
||||||
|
{
|
||||||
|
return new DataEloquentCast(static::class, $arguments);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,6 +8,7 @@ use Illuminate\Support\Collection;
|
||||||
use Spatie\LaravelData\Data;
|
use Spatie\LaravelData\Data;
|
||||||
use Spatie\LaravelData\Attributes\WithCast;
|
use Spatie\LaravelData\Attributes\WithCast;
|
||||||
use Spatie\LaravelData\Attributes\WithTransformer;
|
use Spatie\LaravelData\Attributes\WithTransformer;
|
||||||
|
use Spatie\LaravelData\Support\EloquentCasts\DataEloquentCast;
|
||||||
|
|
||||||
class FormConfigData extends Data
|
class FormConfigData extends Data
|
||||||
{
|
{
|
||||||
|
@ -29,4 +30,10 @@ class FormConfigData extends Data
|
||||||
new FieldCollection([])
|
new FieldCollection([])
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** @return DataEloquentCast<self> */
|
||||||
|
public static function castUsing(array $arguments): DataEloquentCast
|
||||||
|
{
|
||||||
|
return new DataEloquentCast(static::class, $arguments);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,6 +6,7 @@ use Spatie\LaravelData\Data;
|
||||||
use Spatie\LaravelData\DataCollection;
|
use Spatie\LaravelData\DataCollection;
|
||||||
use Spatie\MediaLibrary\MediaCollections\Models\Media;
|
use Spatie\MediaLibrary\MediaCollections\Models\Media;
|
||||||
use Spatie\LaravelData\Attributes\DataCollectionOf;
|
use Spatie\LaravelData\Attributes\DataCollectionOf;
|
||||||
|
use Spatie\LaravelData\Support\EloquentCasts\DataEloquentCast;
|
||||||
|
|
||||||
class Condition extends Data
|
class Condition extends Data
|
||||||
{
|
{
|
||||||
|
@ -42,4 +43,10 @@ class Condition extends Data
|
||||||
{
|
{
|
||||||
return $this->mode === ConditionMode::ALL;
|
return $this->mode === ConditionMode::ALL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** @return DataEloquentCast<self> */
|
||||||
|
public static function castUsing(array $arguments): DataEloquentCast
|
||||||
|
{
|
||||||
|
return new DataEloquentCast(static::class, $arguments);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
namespace App\Lib\Editor;
|
namespace App\Lib\Editor;
|
||||||
|
|
||||||
use Spatie\LaravelData\Data;
|
use Spatie\LaravelData\Data;
|
||||||
|
use Spatie\LaravelData\Support\EloquentCasts\DataEloquentCast;
|
||||||
|
|
||||||
/** @todo replace blocks with actual block data classes */
|
/** @todo replace blocks with actual block data classes */
|
||||||
class EditorData extends Data implements Editorable
|
class EditorData extends Data implements Editorable
|
||||||
|
@ -83,4 +84,10 @@ class EditorData extends Data implements Editorable
|
||||||
{
|
{
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** @return DataEloquentCast<self> */
|
||||||
|
public static function castUsing(array $arguments): DataEloquentCast
|
||||||
|
{
|
||||||
|
return new DataEloquentCast(static::class, $arguments);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -6011,16 +6011,16 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "nette/utils",
|
"name": "nette/utils",
|
||||||
"version": "v4.0.5",
|
"version": "v4.0.6",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/nette/utils.git",
|
"url": "https://github.com/nette/utils.git",
|
||||||
"reference": "736c567e257dbe0fcf6ce81b4d6dbe05c6899f96"
|
"reference": "ce708655043c7050eb050df361c5e313cf708309"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/nette/utils/zipball/736c567e257dbe0fcf6ce81b4d6dbe05c6899f96",
|
"url": "https://api.github.com/repos/nette/utils/zipball/ce708655043c7050eb050df361c5e313cf708309",
|
||||||
"reference": "736c567e257dbe0fcf6ce81b4d6dbe05c6899f96",
|
"reference": "ce708655043c7050eb050df361c5e313cf708309",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -6091,9 +6091,9 @@
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/nette/utils/issues",
|
"issues": "https://github.com/nette/utils/issues",
|
||||||
"source": "https://github.com/nette/utils/tree/v4.0.5"
|
"source": "https://github.com/nette/utils/tree/v4.0.6"
|
||||||
},
|
},
|
||||||
"time": "2024-08-07T15:39:19+00:00"
|
"time": "2025-03-30T21:06:30+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "nikic/php-parser",
|
"name": "nikic/php-parser",
|
||||||
|
|
|
@ -7,6 +7,7 @@ parameters:
|
||||||
stubFiles:
|
stubFiles:
|
||||||
- tests/stub/phpstan/TestResponse.stub
|
- tests/stub/phpstan/TestResponse.stub
|
||||||
- tests/stub/phpstan/Settings.stub
|
- tests/stub/phpstan/Settings.stub
|
||||||
|
- tests/stub/phpstan/DataEloquentCast.stub
|
||||||
|
|
||||||
paths:
|
paths:
|
||||||
- app
|
- app
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Spatie\LaravelData\Support\EloquentCasts;
|
||||||
|
|
||||||
|
use Illuminate\Contracts\Database\Eloquent\CastsAttributes;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @template TDto
|
||||||
|
* @implements CastsAttributes<TDto, TDto>
|
||||||
|
*/
|
||||||
|
class DataEloquentCast implements CastsAttributes
|
||||||
|
{
|
||||||
|
}
|
Loading…
Reference in New Issue