Silverstripe 如何用图像填充Silvertripe 3.1 Gridfield
如何使用外部Url中的图像填充Gridfield? 我可以用实际的url文本填充gridfield,甚至类似于Silverstripe 如何用图像填充Silvertripe 3.1 Gridfield,silverstripe,Silverstripe,如何使用外部Url中的图像填充Gridfield? 我可以用实际的url文本填充gridfield,甚至类似于,但是如何渲染它,使其实际显示图像呢 class GalleryPage extends Page ... $list = $this->getListofImages(); $grid = new GridField('GridFieldName', 'Gallery of', $list); $config = $grid->getConfig()
,但是如何渲染它,使其实际显示图像呢
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 ));
我只是在管理中使用这个,所以我没有使用模板文件。
“图像”是我想显示实际图像的地方。您可以尝试以下方法
$dataColumns->setFieldFormatting(array(
"Image" => function($value, $item) {
return '<img src="' . $item->getAbsoluteURL() . '"/>';
}
);
$dataColumns->setFieldFormatting(数组)(
“图像”=>函数($value,$item){
返回'getAbsoluteURL()'“/>';
}
);
您可能需要调整url的提取方式,这取决于$list是由什么组成的,但这正是您的想法。多亏了jfbarrois,以下是答案-
$dataColumns->setFieldFormatting(array(
"Image" => function($value, $item) {
return '<img src="' . $item->Image . '"/>';
}
));
$dataColumns->setFieldFormatting(数组)(
“图像”=>函数($value,$item){
返回“图像”。“/>”;
}
));
$item->Image
这是一个url字符串,不是实际的图像。也可以在原始代码中使用$item->url
或$item->ThumbUrl
。谢谢你的回答,它不起作用,但是它帮助我找到了答案。因为“Image”只是问题中的url字符串,所以答案只是c使用上面的示例更改返回-返回“Image.”“>”;或者可以使用$result=“ThumbUrl.”“>”;因为它也是一个url字符串。非常感谢!