我正在 Silverstripe 4 中开展一个项目。在页面保存/发布时,我想创建一个“MetaImage”,它由与页面关联的随机图块图像组成。
MetaImage 是由 GD 创建的——然后我试图将它保存到 ORM 中。这是一些示例代码:
public function onBeforeWrite()
{
$metaImage = imagecreatetruecolor(1200, 1200);
//GD image created here
$fileName = 'metaimage-'.$this->ID.'.jpeg';
$saveFolder = Folder::find_or_make('MetaImages');
imagejpeg($metaImage, 'assets/MetaImages/'. $fileName);
$metaObjectImage = new Image();
$metaObjectImage->ParentID = $saveFolder->ID;
$metaObjectImage->Filename = $fileName;
$metaObjectImage->write();
$this->MetaImage()->$metaObjectImage;
imagedestroy($metaImage);
parent::onBeforeWrite();
}
我得到的只是CMS的“文件”部分中的一个红色框,带有“找不到文件”。
如何将创建的 GD 图像与$metaObjectImage
?
如果“metaimage-6.jpeg”已经存在,我怎样才能让它被文件的新副本替换?