持续之前,文本区域中的符号/学说滑动元素


Symfony/doctrine slip element in textarea before persist

嗨,我是symfony2的新手,我想做一件事

我在我的视图中有一个文本区域,在这个文本区域中,我想放一些我的名字,每行一个,比如:

john
frank
...

我想把每一个都保存在数据库中。。。

我在控制器里有:

    $formBuilderMultiple = $this->container
        ->get('form.factory')
        ->createNamedBuilder('formMultiple', 'form', NULL)
        ->add('users', 'textarea')
        ->add('add', 'submit');
    $formMultiple = $formBuilderMultiple->getForm();

    if ($formMultiple->handleRequest($request)->isValid()) {
       // what to write here??

    }

我想做一个类似的东西:

foreach(explode("'n", $formMultiple->users) as $line) {
     var_dump($line);
}

我该怎么办?

感谢:D

这类工作的两个最佳解决方案是:

1) 将FormEvents::POST_SUBMIT事件的事件侦听器添加到字段users,您将在其中获取提交的值并根据需要进行处理,然后以新表单重新提交。更多信息:http://symfony.com/doc/current/cookbook/form/dynamic_form_modification.html

2) 使用数据转换器:您可以创建一个数据转换器,通过基于给定的分隔符内爆/分解,将字符串转换为数组,也将数组转换为字符串。更多信息:http://symfony.com/doc/current/cookbook/form/data_transformers.html

但你也可以在你的控制器中做所有这些事情,这是不推荐的:

$submittedFormData = $formMultiple->getData();
foreach(explode("'n", $submittedFormData['users']) as $user) {
    var_dump($user);
}