1

github で symfony の問題チケットを提出しましたが、回避策が必要です: https://github.com/symfony/symfony/issues/5150

関連付けられた画像を持つエンティティを作成し、symfony ドキュメントで説明されているようにライフサイクル コールバックを使用して保存しています: http://symfony.com/doc/current/cookbook/doctrine/file_uploads.html#using-lifecycle-コールバック

ユーザーがフォームに入力して保存すると、すべてが正常に機能します。ただし、ユーザーが入力/編集する項目が画像のみの場合、フォームは保存されません。これは、symfony がエンティティの変更を認識しないため、エンティティを再永続化する必要がなく、事前/事後永続化関数が呼び出されないためだと思います。

エンティティを強制的に永続化する方法が必要です。

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 に答える