我有一个包含2个输入字段的电子邮件和密码(隐藏)的表单。我正在尝试生成如下的随机值,但在提交后无法绑定密码(隐藏)值。
$password = substr(md5(rand(100000, 999999)), 0, 6);
$this->form->bind($request->setParameter('password',$password));
表单的setNameformat为:
$this->widgetSchema->setNameFormat('user[%s]');
答案 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);
}