1
我有一個textarea字段(其中,用戶添加的域名,每個每行),並且從字符串轉換至陣列的數據變壓器的一種形式: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())
);
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的字符串值不帶新行。我已經在我的領域設置了選項修剪爲假。
任何想法爲什麼會發生這種情況?
我的分隔符是:'\ n',但我已經嘗試過'\ r \ n'。
那麼看來解決方案是使用雙引號而不是單個。 因此,如果我使用「\ r \ n」,一切都按預期工作。
謝謝。
我更新了我的問題 –