1
我正在制作Silverstripe构建任务以从外部图库获取许多图像,并使用必要的数据库链接将其创建/上载到/assets/images/gallery
文件夹中,并链接至GalleryPage
。通过BuildTask将外部图库中的图像添加到SilverStripe网站
因此,我加载Url列表,将图像显示到浏览器,现在如何将图像保存到资产文件夹中,并提供必要的GalleryPage
数据库链接?
class ImportGalleryTask extends BuildTask {
public function writeImage($data) {
//$data->Title
//$data->Filename
//$data->Url
//this is the external url that I can output as an image to the browser
//
// folder to save image is 'assets/images/gallery'
//
// ? save into folder and database and associate to PageImageBelongsToID ?
}
}
十分感谢,这个工程的复制图像和数据库中识别它,但是它并没有将其与它应该属于关联页,那就是GalleryPage。该图像需要属于GalleryImage类,GalleryImage类有一个PageImageBelongsToID,它是一个GalleryPage类,我该怎么做? – user3257693
@ user3257693嗯,这取决于。如果你有一个GalleryPage,那么你可以得到它:'GalleryPage :: get() - > first()'。否则,你将不知何故必须告诉导入任务您要导入的GalleryPage ...可能是传递ID作为参数。 – bummzack
@ user3257693也,子类化图像来创建一个关系是一个非常糟糕的主意。我认为有几种情况下系统会为你创建一个Image,而不是你想要的子类(例如,如果你通过CMS取代你的图像)。我强烈建议你使用扩展,而不是使用'many_many'关系,这样就可以将图像附加到多个页面。 – bummzack