你好我是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
答案 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);
}