Symfony CMF - 上传图像和 PDF 文件

Symfony CMF - Uploading Images and PDF Files

我正在使用 Symfony CMF Media Bundle 来实现以下目标。我有几个节点可以有一个图像和一个可下载的 PDF。 我已经想通了 setImage 方法必须这样实现:

public function setPreviewImage($previewImage)
{
    if ($previewImage === null) {
        return $this;
    }

    if (!$previewImage instanceof ImageInterface && !$previewImage instanceof UploadedFile) {
        $type = is_object($previewImage) ? get_class($previewImage) : gettype($previewImage);
        throw new \InvalidArgumentException(sprintf(
            'Image is not a valid type, "%s" given.',
            $type
        ));
    }

    if ($this->previewImage) {
        $this->previewImage->copyContentFromFile($previewImage);
    } elseif ($previewImage instanceof ImageInterface) {
        $previewImage->setName('previewImage');
        $this->previewImage = $previewImage;
    } else {
        $this->previewImage = new Image();
        $this->previewImage->copyContentFromFile($previewImage);
    }

    return $this;
}

然后在另一个论坛上有人建议让这个 属性 级联持久化。有了这个提示:https://github.com/symfony-cmf/BlockBundle/blob/master/Resources/config/doctrine-phpcr/ImagineBlock.phpcr.xml#L22。现在我想知道如何以及是否可以在我的配置中设置此选项。

我想知道的下一部分是 cmf_media_file 类型。这里有没有人设法将 PDF 存储到 PHPCR 节点 属性?

如有任何帮助,我将不胜感激。

我自己想出来的。 对于任何使用注释的人,您必须像这样设置它:

use Symfony\Cmf\Bundle\MediaBundle\Doctrine\Phpcr\Image;
use Doctrine\ODM\PHPCR\Mapping\Annotations as PHPCR;

/** 
 * @var Image
 * @PHPCR\Child(cascade="persist")
 */