假设我们有路径/assets/no-thumbnail.png
,如何将其加载到SilverStripe的Image
类中?我能做到吗?
我问的原因是因为我想要在Image
类中可用的方法。
是的,对于存在于/assets
文件夹中的文件来说,这是非常直接的。虽然对于其他位置的文件可能也可以实现,但我将描述的方法将把该文件与通过CMS上传的任何其他文件区别对待。
首先,我们需要确保这个映像有一个DB记录。幸运的是,如果需要以编程方式执行此操作,可以像调用Filesystem::sync()
一样简单。如果没有,在CMS的文件选项卡中有一个"同步"按钮。
一旦完成,您可以简单地调用File::get()->filter('Name', 'no-thumbnail.png')->first()
(甚至只是File::find('no-thumbnail.png')
)来获得"适当的"Image
对象,允许您调用Image
类的任何实例方法。