maxipost/form-strategy

该包最新版本(v1.1.1)没有提供许可信息。

表单策略(用于数据填充)

v1.1.1 2019-06-11 15:11 UTC

README

composer require maxipost/form-strategy

示例填充

(new FormStrategyBuilder)->buildFromArray(
    [
        FormStrategyBuilder::DTO => TestClass\TestClass::class,
        FormStrategyBuilder::NESTED_FIELDS => [
            'testField1' => [
                FormStrategyBuilder::DTO => TestClass\TestClass::class,
            ],
            'testField2' => [
                FormStrategyBuilder::DTO => TestClass\TestClass::class,
                FormStrategyBuilder::NESTED_FIELDS => [
                    'testField3' => [FormStrategyBuilder::DTO => TestClass\TestClass::class],
                ],
            ],
            'testField4' => [
                FormStrategyBuilder::DTO => TestClass\TestClass::class,
                FormStrategyBuilder::IS_ARRAY => true,
            ],
            'testField5Single' => [
                FormStrategyBuilder::DTO => TestClass\TestClass::class,
                FormStrategyBuilder::SINGLE_NAME => 'test',
            ],
        ],
    ]
)->hydrate([
        'testField1' => ['test' => 'test'],
        'testField2' => [
            'test' => 'test',
            'testField3' => ['test' => 'test'],
        ],
        'testField4' => [
            ['test' => 'test'],
            ['test' => 'test'],
        ],
        'testField5Single' => 'single',
]);

示例提取

(new FormStrategyBuilder)->buildFromArray([
    FormStrategyBuilder::DTO => TestClass\TestClass::class,
    FormStrategyBuilder::NESTED_FIELDS => [
        'testField1' => [
            FormStrategyBuilder::DTO => TestClass\TestClass::class,
        ],
        'testField2' => [
            FormStrategyBuilder::DTO => TestClass\TestClass::class,
            FormStrategyBuilder::NESTED_FIELDS => [
                'testField3' => [FormStrategyBuilder::DTO => TestClass\TestClass::class],
            ],
        ],
        'testField4' => [
            FormStrategyBuilder::DTO => TestClass\TestClass::class,
            FormStrategyBuilder::IS_ARRAY => true,
        ],
        'testField5Single' => [
            FormStrategyBuilder::DTO => TestClass\TestClass::class,
            FormStrategyBuilder::SINGLE_NAME => 'test',
        ],
    ],
])->extract(
    $data
);