Php 图像是唯一更改的字段时未保存

Php 图像是唯一更改的字段时未保存,php,symfony,doctrine,Php,Symfony,Doctrine,我在github上向symfony提交了一份问题通知单,但我需要一个解决办法: 我创建了一个具有关联映像的实体,并使用生命周期回调保存它,如symfony文档中所述: 当用户填写表单并点击save时,一切正常。但是,如果用户填写/编辑的唯一项目是图像,则不会保存表单。我认为这是因为symfony没有看到实体的更改,因此它不需要重新支持实体,因此从不调用pre/post persist函数 我需要一些方法来强制实体持久化。您可以添加一个更新的日期字段。在文件行的setter处,将此更新字段设置为当

我在github上向symfony提交了一份问题通知单,但我需要一个解决办法:

我创建了一个具有关联映像的实体,并使用生命周期回调保存它,如symfony文档中所述:

当用户填写表单并点击save时,一切正常。但是,如果用户填写/编辑的唯一项目是图像,则不会保存表单。我认为这是因为symfony没有看到实体的更改,因此它不需要重新支持实体,因此从不调用pre/post persist函数


我需要一些方法来强制实体持久化。

您可以添加一个更新的日期字段。在文件行的setter处,将此更新字段设置为当前日期。现在一切都正常了。

我假设您的表单中有一个用于文件上传的字段和一个用于路径的字段。 如果更改setFile方法以更改文件路径实体,则应正确保存。例如:

public function setFile($file)
{
    if (! empty($file)) {
        $this->photo = 'changed';
    }
    $this->file = $file;
}

在我的控制器的isValid部分,我应该在哪里这样做?我的实体中没有这样的setfile方法-doctrine不会为未持久化的对象属性创建(或使用)setter/getter。如果属性不在公共范围内,可以使用它。我不知道这一点,但我的设置是根据我链接的指南进行的,而且我也没有什么能手。