Элемент проскальзывания Symfony / Doctrine в текстовой области до сохранения

0

Привет, я новичок в 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

Теги:
doctrine2

1 ответ

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню