如何使用外部网址中的图像填充网格域?
我可以使用实际的url文本填充gridfield,甚至可以填充<img src="...">
之类的内容,但是如何渲染它以便实际显示图像?
class GalleryPage extends Page
...
$list = $this->getListofImages();
$grid = new GridField('GridFieldName', 'Gallery of', $list);
$config = $grid->getConfig();
$dataColumns = $config->getComponentByType('GridFieldDataColumns');
$dataColumns->setDisplayFields(array(
"Image" => "Image",
'Title' => 'Title', 'Tags' => "Tags",
'Url' => "Url", 'ThumbUrl' => 'ThumbUrl'));
$fields->addFieldsToTab('Root.ImportGallery', array( $grid ));
我只是在管理员中使用它,所以我没有使用模板文件。 “图像”是我想要显示实际图像的地方。
答案 0 :(得分:2)
您可以尝试以下
$dataColumns->setFieldFormatting(array(
"Image" => function($value, $item) {
return '<img src="' . $item->getAbsoluteURL() . '"/>';
}
);
您可能需要调整网址的提取方式,具体取决于$ list的构成,但这就是主意。
答案 1 :(得分:1)
感谢jfbarrois,这是答案 -
$dataColumns->setFieldFormatting(array(
"Image" => function($value, $item) {
return '<img src="' . $item->Image . '"/>';
}
));
$item->Image
这里是一个url的字符串,而不是一个实际的图像。也可以在原始代码中使用$item->Url
或$item->ThumbUrl
。