Symfony 在提交后设置隐藏值

发布于 2024-11-10 15:13:34 字数 337 浏览 2 评论 0 原文

我有一个带有 2 个输入字段 email 和 password(hidden) 的表单。我试图生成如下随机值,但提交后未能绑定密码(隐藏)值。

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

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

表单的 setNameformat 为:

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

I have a form with 2 input fields email and password(hidden) . I'm trying to generate a random value as below but failed to bind password(hidden) value after submit.

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

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

Form has the setNameformat with:

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

Oo萌小芽oO 2024-11-17 15:13:34

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

例如:

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

然后照常显示/保存表单 - 保存时密码值将通过表单进程直接传递到数据库。

If a doctrine (or propel) form, I would do this by setting the values on the object before passing to the form constructor, and completely removing the widget from the form.

eg:

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

Then display/save the form as usual - the password value will be passed right through the form process to the database when saved.

愁以何悠 2024-11-17 15:13:34

如果你使用这个:

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

那么你的表单输入字段可以在单个变量中检索:

$request->getParameter('user');

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

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

参考可以找到此处

问候。

if you use this:

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

then your form input fields can be retrieved in single variable:

$request->getParameter('user');

and the value that you want to assign need to be set with something like:

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

Reference can be found here.

Regards.

送你一个梦 2024-11-17 15:13:34

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

如下所示:

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

You can override the save method of your form and add $this->values[$field] = $value;

Something like this:

public function save($con = null) 
{
        $this->values['owner_id'] = $this->values['owners_ids'][2];` 
        return parent::save($con); 
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文