Symfony在doSave中设置表单字段的值

时间:2011-12-13 16:45:04

标签: php symfony1 symfony-1.4 symfony-forms

我需要覆盖我的表格:

  protected function doSave($con = null)
  {
    $filename= Helper::generateFilename($this->getValue('name')).'jpg';
    imagejpeg(Helper::createImage($this->getValues()), sfConfig::get('sf_upload_dir').'/poster/'.$filename );
    /* Here I need to set value of *fielname* field of the form equal to 
     $filename  */
    parent::doSave($con);
  }

Helper.class.php位于/lib/,因此它就像一个助手类。

generateFilename实际上给出了一个随机字符串。由于表格中没有setValue这样的功能,我被卡住了。

2 个答案:

答案 0 :(得分:1)

我尝试了macgyver的方法,但对我没用。不确定我做错了什么。 使用Doctrine,Syfmony版本为1.4。

我必须覆盖表单类中的updateObject()函数。 在我的情况下,它的内部TimesheetForm.class.php。我必须根据用户操作更改时间表的状态。

以下是我尝试过的一段代码。它在保存之前确实更新了对象。这在数据库中受到影响。

    public function updateObject($values = null)
    {
        $object = parent::updateObject($values);
        $object->setStatus("Submitted");

        return $object;
    }

我没有阻止/覆盖doSave()函数。我正在使用symfony 1.4。 希望以上有所帮助。

答案 1 :(得分:0)

您必须使用,比如您已在架构中使用filename字段来存储图像文件名,$this->object->setFilename($filename);

之前的parent::doSave($con);