gupalo/symfony-form-transformers

Symfony 表单转换器

1.3.0 2024-02-21 16:44 UTC

This package is auto-updated.

Last update: 2024-09-21 17:56:46 UTC


README

Symfony Forms TsvTransformer

如何安装

使用 composer 安装 gupalo/symfony-form-transformers 包

composer require gupalo/symfony-form-transformers

转换器

  • EmptyStringTransformer:允许用户传递应作为空字符串的空字段而不是null
  • JsonYamlTransformer:用户以YAML的形式查看和编辑字段,但在数据库中存储为JSON,在PHP中为数组
  • StringArrayTransformer:用户可以逐行输入多个字符串,它们将成为一个数组
  • TsvTransformer:用户从电子表格复制粘贴,PHP将获得具有命名键的数组(不支持多行和引号)

基本用法

将转换器添加到您的表单

class YourEntity
{
    private ?array $data = [];
}
///
class YourEntityType extends AbstractType
{
    public function __construct(private JsonYamlTransformer $jsonYamlTransformer)
    {
        $this->jsonYamlTransformer = $jsonYamlTransformer;
    }

    public function buildForm(FormBuilderInterface $builder, array $options): void
    {
        $builder
            // ...
            ->add('data', TextareaType::class);

        $builder->get('data')->addModelTransformer($this->jsonYamlTransformer);
    }

高级用法

某些转换器在构造时具有选项。选项是公共属性,您可以在以后更改它们。

查看 tests 获取更多示例。还可以查看 src - 逻辑相当简单。

如果您有多行输入Tsv,请设置 TsvHelper::$multiline = true;