如何在Sonata Admin的Show Action中显示图像?

时间:2017-05-18 15:23:42

标签: php symfony sonata-admin

我正在使用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);
}

是嵌入式管理员

1 个答案:

答案 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,
        ))
    ;
}

希望这有帮助