让我们看看动作(表单基于模型)
$this->form->bind ($request->getParameter('task'));
if ($this->form->isValid())
{
// cakk
}
这一切都很好,当它真的无效时它是无效的等等。
但我想编辑一些字段,例如必须始终将日期设置为现在。或者必须对密码进行编码。我怎样才能做到这一点?
让我们看看动作(表单基于模型)
$this->form->bind ($request->getParameter('task'));
if ($this->form->isValid())
{
// cakk
}
这一切都很好,当它真的无效时它是无效的等等。
但我想编辑一些字段,例如必须始终将日期设置为现在。或者必须对密码进行编码。我怎样才能做到这一点?
doSave()
您可以以 .. 形式覆盖该方法,如下所示:
public function doSave($con = null)
{
$this->values['form field'] = 'newvalue';
parent::doSave($con);
}
$this->values
是一个包含表单上的值的数组。
你可以使用一个 post 验证器 .. 像这样(再次在表单类中):
$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;
}