Symfony/doctrine 在坚持之前在文本区域滑动元素
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) 使用数据转换器:您可以创建一个数据转换器,根据给定的分隔符 imploding/exploding 将字符串转换为数组,并将数组转换为字符串。更多:http://symfony.com/doc/current/cookbook/form/data_transformers.html
但是你也可以在你的控制器中做所有这些事情,不推荐这样做:
$submittedFormData = $formMultiple->getData();
foreach(explode("\n", $submittedFormData['users']) as $user) {
var_dump($user);
}
嗨,我是 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) 使用数据转换器:您可以创建一个数据转换器,根据给定的分隔符 imploding/exploding 将字符串转换为数组,并将数组转换为字符串。更多:http://symfony.com/doc/current/cookbook/form/data_transformers.html
但是你也可以在你的控制器中做所有这些事情,不推荐这样做:
$submittedFormData = $formMultiple->getData();
foreach(explode("\n", $submittedFormData['users']) as $user) {
var_dump($user);
}