0

Uploadable 拡張機能を使用していますが、とても満足しています。Uploadable (写真) として 1 つのフィールドを持つエンティティがあり、別のフィールドはその写真の注釈 (注釈) です。最初にエンティティを作成するときに、ファイルを選択して注釈を付けるとすべて正常に機能しますが、注釈だけを更新すると、以前にアップロードされた写真の保存されたパスが失われます。そのフィールドにnullが来る場合、古い値を保持する方法はありますか?

これが私のエンティティです。

/**
 * Photo
 *
 * @ORM\Table()
 * @ORM\Entity
 * @Gedmo\Uploadable(
 *     path="up/photo",
 *     allowOverwrite=false,
 *     appendNumber=true,
 *     allowedTypes="image/jpeg,image/pjpeg,image/png,image/x-png"
 * )
 */
class Photo
{
      /**
     * @var array
     *
     * @Gedmo\Translatable
     * @ORM\Column(name="annotation", type="string", length=255, nullable=true)
     */
    private $annotation;

    /**
     * @var string
     *
     * @Gedmo\UploadableFilePath
     * @Assert\File(
     *     mimeTypes={"image/jpeg", "image/pjpeg", "image/png", "image/x-png"}
     * )
     * @ORM\Column(name="photo", type="string", length=255)
     */
    private $photo;

そして、これは私のコントローラー部分です:

        if ($entity->getPhoto()) {
            $uploadableManager = $this->get('stof_doctrine_extensions.uploadable.manager');
            $uploadableManager->markEntityToUpload($entity, $entity->getPhoto());
        }
4

1 に答える 1

0

エンティティのセッターを変更できます。

public function setPhoto($photo) {
    if (!$photo) {return $this;}
    $this->photo = $photo;
    return $this;
于 2015-09-11T21:36:43.207 に答える