1

Doctrine でエンティティを永続化した後、画像のサイズを変更しようとしています。私のエンティティコードでは、フラッシュと更新の前にフィールドを特定の値に設定しています:

 /**
 * @ORM\PrePersist()
 * @ORM\PreUpdate()
 */
public function preUpload()
{
    if (null !== $this->getFile()) {
        // do whatever you want to generate a unique name
        $filename = sha1(uniqid(mt_rand(), true));
        $this->image = $filename.'.png';
    }
}

したがって、画像フィールドは更新されるはずです。次に、コントローラーで、サイズ変更ジョブを実行したいと思います。

if ($form->isValid()) 
    {
        $em->persist($activite);
        $em->flush();

        //resize the image
        $img_path = $activite->getImage();
        resizeImage($img_path);
    }

ただし、コードのこの時点では、$activite->image の値はまだ null です。どうすれば新しい値を取得できますか?

(すべてがデータベースに適切に保存されます。)

4

2 に答える 2

3

EntityManagerは、 refresh()データベースからの最新の値でエンティティを更新するメソッドがあります。

$em->refresh($entity);
于 2013-09-04T16:37:55.810 に答える