Php 发布时如何编辑小部件值?

Php 发布时如何编辑小部件值?,php,symfony-1.4,Php,Symfony 1.4,让我们看看动作(表单基于模型) 这一切都是好的,它是无效的,当它真的无效等 但我想编辑一些字段,例如日期必须始终设置为“现在”。或者必须对密码进行编码。如何执行此操作?您可以覆盖表单中的doSave()方法。。大概是这样的: public function doSave($con = null) { $this->values['form field'] = 'newvalue'; parent::doSave($con); } $this->values是一个数组,包含表单

让我们看看动作(表单基于模型)

这一切都是好的,它是无效的,当它真的无效等


但我想编辑一些字段,例如日期必须始终设置为“现在”。或者必须对密码进行编码。如何执行此操作?

您可以覆盖表单中的
doSave()
方法。。大概是这样的:

public function doSave($con = null)
{
   $this->values['form field'] = 'newvalue';
   parent::doSave($con);
}
$this->values
是一个数组,包含表单上的值

更新 您可以使用后验证器。。这样(同样在form类中):

public function doSave($con = null)
{
   $this->values['form field'] = 'newvalue';
   parent::doSave($con);
}
$this->validatorSchema->setPostValidator(
     new sfValidatorCallback(array('callback' => array($this, 'methodName')))
);

public function methodName($validator, $values)
{
    // check / change what you need to
    $values['fieldname'] = 'new value';
    // return values
    return $values;
}