我正在使用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;
}
然后在另一个论坛中,有人建议将此属性设为cascade-persistent。提示:https://github.com/symfony-cmf/BlockBundle/blob/master/Resources/config/doctrine-phpcr/ImagineBlock.phpcr.xml#L22。现在我想知道如何在我的配置中设置此选项。
我想知道的下一部分是cmf_media_file类型。有没有人在这里设法将PDF存储到PHPCR节点属性?
如果有任何帮助,我会非常感激。
答案 0 :(得分:3)
我自己想通了。 对于使用注释的任何人,您必须将其设置为:
use Symfony\Cmf\Bundle\MediaBundle\Doctrine\Phpcr\Image;
use Doctrine\ODM\PHPCR\Mapping\Annotations as PHPCR;
/**
* @var Image
* @PHPCR\Child(cascade="persist")
*/