Symfony text带数据转换器的区域字段

Symfony text带数据转换器的区域字段,symfony,symfony-forms,Symfony,Symfony Forms,我有一个带有textarea字段(用户在其中添加域名,每行一个)的表单和一个从字符串转换为数组的数据转换器: $builder->add( $builder->create('domains', 'textarea', [ 'trim' => false, 'constraints' => [ new Assert\NotBlank(),

我有一个带有textarea字段(用户在其中添加域名,每行一个)的表单和一个从字符串转换为数组的数据转换器:

$builder->add(
            $builder->create('domains', 'textarea', [
                'trim' => false,
                'constraints' => [
                    new Assert\NotBlank(),
                    new Assert\All([
                        'constraints' => [
                            new Assert\NotBlank(),
                            new Domain(),
                            new RegisterDomain(),
                        ]
                    ])
                ]
            ])->addModelTransformer(new ArrayToStringTransformer())
        );
阵列串变压器

public function transform($values)
    {
        if (empty($values)) {
            return '';
        }    
        return implode($this->delimiter, $values);        
    }


public function reverseTransform($string)
    {        
        if (!$string) {
            return [];
        }

        return array_filter(array_map('trim', explode($this->delimiter, $string))); 
    } 
每个域应位于新行上。 但是,当我在reverseTransform上获得字符串值时,该值不会带来新行。我已经在我的字段中将选项trim设置为false

知道为什么会这样吗

我的分隔符是:'\n',但我已尝试使用'\r\n'

看来解决方案是使用双引号而不是单引号。 因此,如果我使用“\r\n”,一切都会正常工作。


谢谢。

输入数据中的换行可以有两种形式:
\r
\n
。使用这两种方法拆分数据

return implode("\r\n", $values);