1

Тема: Добавить в форму новое поле

Здравствуйте!
Понадобилось в форму добавить еще одно текстовое поле рядом с выпадающим списком, для выбора значения либо из выпадающего списка либо если в списке нет такого значения, чтобы была возможность его ввести.
Добавил в lib/form/Form.class.php:

$this->widgetSchema['status2'] = new sfWidgetFormInput(array(
      'label' => 'Статус',
    ));

там же:

$this->widgetSchema['status'] = new sfWidgetFormChoice(array(
    'choices'  => array('' => 'Выбрать', 'test1' => 'test1', 'test2' => 'test2', 'test3' => 'test3'),
    'multiple' => false,
    'expanded' => false,
));

В файле _form.php добавил:

<?=$form['status']->render();?> или <?=$form['status2']->render()?>

И после этого зашел в тупик.
Не подскажете, куда копать и где еще прописать что если выбрано значение из выпадающего списка, то в базу записываем его, если ничего не выбрано но есть текст в поле ввода- то его, а если есть текст в поле ввода и выбрано значение из выпадающего списка- то записываем значение из списка?

2

Re: Добавить в форму новое поле

То, что форма умеет мапиться на доктриновскую энтити еще совсем не значит, что это панацея.
Возьмите из формы данные, сделайте с ними все что вам нужно в соответствии с бизнес-логикой, передайте в энтити и сохраните. Это можно сделать в сервисе — менеджере вашей сущности.

3

Re: Добавить в форму новое поле

relo_san пишет:

То, что форма умеет мапиться на доктриновскую энтити еще совсем не значит, что это панацея.
Возьмите из формы данные, сделайте с ними все что вам нужно в соответствии с бизнес-логикой, передайте в энтити и сохраните. Это можно сделать в сервисе — менеджере вашей сущности.

Эх, еще бы понять что Вы написали...

4 Отредактировано Hill (2014-02-18 15:36:39)

Re: Добавить в форму новое поле

mount пишет:

Эх, еще бы понять что Вы написали...

Нужно нажать кнопку "добавить поле чтобы работало" и нажать "Apply". Описание принципа работы кнопок находятся где-то здесь.

5

Re: Добавить в форму новое поле

Hill пишет:

Нужно нажать кнопку "добавить поле чтобы работало" и нажать "Apply".

Ржал.

Вообще, я что-то как-то просмотрел, что вопрос про форм-фреймворк первой ветки Симфони.
Там все чуть проще — обработчик нужно написать непосредственно в самой форме, переопределив например save() формы и добавив в него нужную бизнес-логику.

6

Re: Добавить в форму новое поле

relo_san пишет:

[quote=Hill пишет:
Нужно нажать кнопку "добавить поле чтобы работало" и нажать "Apply".

Ржал.

Вообще, я что-то как-то просмотрел, что вопрос про форм-фреймворк первой ветки Симфони.
Там все чуть проще — обработчик нужно написать непосредственно в самой форме, переопределив например save() формы и добавив в него нужную бизнес-логику.

А не подскажете, как переопределить save() и где?

7

Re: Добавить в форму новое поле

Даже ссылку дали:

Hill пишет:

... где-то здесь.

8

Re: Добавить в форму новое поле

mount пишет:

А не подскажете, как переопределить save() и где?

А в документацию посмотреть лень? В разделе прилеплена тема со всеми ссылками. Или нужно, чтобы за вас все нашли?
http://symfony.com/legacy/doc/forms/1_4 … ave_method