Symfony在提交后设置隐藏值

时间:2011-05-28 03:32:44

标签: symfony1 symfony-1.4 symfony-forms

我有一个包含2个输入字段的电子邮件和密码(隐藏)的表单。我正在尝试生成如下的随机值,但在提交后无法绑定密码(隐藏)值。

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

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

表单的setNameformat为:

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

3 个答案:

答案 0 :(得分:1)

如果你使用它:

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

然后可以在单个变量中检索表单输入字段:

$request->getParameter('user');

并且您要分配的值需要设置为:

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

可以找到参考here

问候。

答案 1 :(得分:1)

如果是一个学说(或推进)形式,我会通过在传递给表单构造函数之前设置对象上的值,并从表单中完全删除小部件来完成此操作。

例如:

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

然后像往常一样显示/保存表单 - 密码值将在保存时通过表单进程传递到数据库。

答案 2 :(得分:1)

您可以覆盖表单的保存方法并添加$this->values[$field] = $value;

这样的事情:

public function save($con = null) 
{
        $this->values['owner_id'] = $this->values['owners_ids'][2];` 
        return parent::save($con); 
}