1

我在 github 上向 symfony 提交了问题单,但我需要一个解决方法:https ://github.com/symfony/symfony/issues/5150

我创建了一个带有关联图像的实体,并使用 symfony 文档中描述的生命周期回调来保存它:http: //symfony.com/doc/current/cookbook/doctrine/file_uploads.html#using-lifecycle-回调

当用户填写表格并点击保存时,一切正常。但是,如果用户填写/编辑的唯一项目是图像,则不会保存表单。我相信这是因为 symfony 没有看到实体的变化,所以它不会费心重新持久化实体,因此永远不会调用 pre/post persist 函数。

我需要一些方法来强制实体持续存在。

4

2 回答 2

2

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

于 2012-08-05T20:46:40.613 回答
1

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

public function setFile($file)
{
    if (! empty($file)) {
        $this->photo = 'changed';
    }
    $this->file = $file;
}
于 2012-08-05T22:31:37.603 回答