让我们说例如我们有路径/assets/no-thumbnail.png
,如何将它加载到SilverStripe中的Image
类?有没有办法可以做到这一点?
我问的原因是因为我想要Image
类中可用的方法。
答案 0 :(得分:4)
是的,/assets
文件夹中存在的文件非常简单。虽然可能对其他位置的文件实现,但我将描述的方法将对文件的处理与您通过CMS上传的任何其他文件没有区别。
首先,我们需要确保此图像有一个DB记录。幸运的是,如果您需要以编程方式执行此操作,就可以像调用Filesystem::sync()
一样简单。如果没有,那就是"同步" CMS中“文件”选项卡中的按钮。
完成后,您只需拨打File::get()->filter('Name', 'no-thumbnail.png')->first()
(或甚至只是File::find('no-thumbnail.png')
)即可获得正确的" Image
对象,允许您调用Image
class's instance methods中的任何一个。