在持续存在之前,textarea中的Symfony / doctrine slip元素

时间:2015-02-20 22:29:11

标签: php symfony doctrine-orm

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

我在视图中有一个textarea,在这个文本区域我想要输入somme名称,每行一个,如:

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 个答案:

答案 0 :(得分:0)

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

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);
}