我正在使用Symfony 2.8和Sonata Admin捆绑包与Sonata ORM。
我使用this在“编辑”操作中显示图片,效果很好。
但是我想在Show Action中显示图像,并且说明不适用于ImageAdmin的configureShowFields内部
protected function configureShowFields(ShowMapper $showMapper)
{
if($this->hasParentFieldDescription()) { // this Admin is embedded
// $getter will be something like 'getlogoImage'
$getter = 'get' . $this->getParentFieldDescription()->getFieldName();
// get hold of the parent object
$parent = $this->getParentFieldDescription()->getAdmin()->getSubject();
if ($parent) {
$image = $parent->$getter();
} else {
$image = null;
}
} else {
$image = $this->getSubject();
}
// use $fileFieldOptions so we can add other options to the field
$fileFieldOptions = array('required' => false);
if ($image && ($webPath = $image->getWebPath())) {
// add a 'help' option containing the preview's img tag
$fileFieldOptions['help'] = '<img src="'.$webPath.'" class="admin-preview" />';
}
$showMapper->add('file', 'file', $fileFieldOptions);
}
是嵌入式管理员
答案 0 :(得分:2)
您可以查看此捆绑包:SonataExtraAdminBundle
您可以在showMapper上使用“图像”类型。
protected function configureListFields(ListMapper $listMapper)
{
$listMapper
...
->add('picture', 'image')
;
}
您还可以使用图像前缀或固定的宽度和高度:
protected function configureListFields(ListMapper $listMapper)
{
$listMapper
...
->add('picture', 'image', array(
'prefix' => '/bundles/acme/images/',
'width' => 75,
'height' => 75,
))
;
}
希望这有帮助