class ExampleDto extends MagicDto
{
public function __construct(
public int $propInt,
public float $propFloat,
public CarbonImmutable $date,
public ?ExampleDto $nested = null,
) {
}
}
ExampleDto::from([
'propInt' => 666,
'propFloat' => '100.5',
'date' => '2023-12-11',
'nested' => [
'date' => '2024-02-23',
'propInt' => 777,
'propFloat' => '200.1',
],
])
// or
ExampleDto::from([
'prop_int' => 666,
'prop_float' => '100.5',
'date' => '2023-12-11',
'nested' => [
'date' => '2024-02-23',
'prop_int' => 777,
'prop_float' => '200.1',
],
])
composer require "illuminate/database"
required when you need to use AgelxNash\MagicDto\Attributes\InjectModel
Class User extends Illuminate\Database\Eloquent\Model {}
class ExampleDto extends MagicDto
{
public function __construct(
#[InjectModel(User::class, 'id')]
public User $user1,
#[InjectModel(User::class, 'email')]
public User $user2,
) {
}
}
ExampleDto::from(['user1' => 777]);
ExampleDto::from(['user2' => 'agel-nash@example.com']);
Laravel, MODX, Security Audit https://agel-nash.ru Telegram: @agel_nash Email: laravel@agel-nash.ru |
ЮMoney: 41001299480137 |