Symfony установить скрытое значение после отправки - PullRequest
0 голосов
/ 28 мая 2011

У меня есть форма с 2 полями ввода электронной почты и пароля (скрытые). Я пытаюсь сгенерировать случайное значение, как показано ниже, но не удалось связать значение пароля (скрытое) после отправки.

$password = substr(md5(rand(100000, 999999)), 0, 6);

$this->form->bind($request->setParameter('password',$password));

Форма имеет setNameformat с:

$this->widgetSchema->setNameFormat('user[%s]');

Ответы [ 3 ]

1 голос
/ 03 июня 2011

Если учение (или продвижение) формы, я бы сделал это, установив значения объекта перед передачей в конструктор формы, и полностью удалив виджет из формы.

например:

$o = new DoctrineOrPropelObject;
$o->setPassword($myrandomstring);
$f = new DoctrineOrPropelObjectForm($o);

Затем отобразите / сохраните форму как обычно - значение пароля будет передано прямо через процесс формы в базу данных при сохранении.

1 голос
/ 20 марта 2012

Вы можете переопределить метод сохранения вашей формы и добавить $this->values[$field] = $value;

Примерно так:

public function save($con = null) 
{
        $this->values['owner_id'] = $this->values['owners_ids'][2];` 
        return parent::save($con); 
}
1 голос
/ 28 мая 2011

если вы используете это:

$this->widgetSchema->setNameFormat('user[%s]');

тогда поля ввода вашей формы можно получить в единственной переменной:

$request->getParameter('user');

и значение, которое вы хотите присвоить, должно быть установлено примерно так:

$request->setParameter('user[password]', $password);

Ссылка может быть найдена здесь .

Привет.

...