Привет, я новичок в 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) Добавьте слушателя событий в событие 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);
}