嗨,我是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);
}