首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用sonata_type_collection的SonataAdminBundle和上传图像

问使用sonata_type_collection的SonataAdminBundle和上传图像
EN

Stack Overflow用户
提问于 2012-11-13 16:23:05
回答 2查看 3.9K关注 0票数 5

在索纳塔管理,我想使用上传和预览图片文件在sonata_type_collection中。

在my Admin/ItemAdmin.php中:

代码语言:javascript
复制
class ItemAdmin extends Admin
{

    protected function configureFormFields(FormMapper $formMapper)
    {
        $formMapper
            ->add('title')
            ->with('Photos')
            ->add('pictures', 'sonata_type_collection', array(
                'label' => 'Pictures',
                'by_reference' => false,
                'required' => false,
                ), array(
                'edit' => 'inline',
                'inline' => 'table',
                'sortable' => 'id'
            ))
            ->end()
        ;
    }

在my Admin/ItemPictureAdmin.php中:

代码语言:javascript
复制
class ItemPictureAdmin extends Admin {

    protected function configureFormFields(FormMapper $formMapper) {
        $obj = $this->getSubject();

        $formBuilder = $formMapper->getFormBuilder();

        if(is_object($obj) && $obj->getPicture())
        {   
            $formMapper
            ->add('picturePreview', 'image_preview', array(
                'required' => false,
                'property_path' => false,
                'upload_dir' => '/uploads/picture/',
                'file_name' => $obj->getPicture()
            ));
        }
        $formMapper->add('pictureFile', 'file', array('label' => 'Pic'));
    }

类型"image_preview“是我用一个简单的模板树枝创建的新类型,用于显示图片。

预览:http://i.stack.imgur.com/AC0ih.png

问题1:我在数据库中记录了两张图片,其中有两个不同的图片文件,但在列表中,它只显示第一个。

问题2:无法更新图片...我必须删除记录并重新上传一个新文件。

EN

回答 2

Stack Overflow用户

发布于 2014-04-25 17:11:41

我自己也碰到了问题1。我尝试了我找到的所有可能的解决方案,但都不起作用。我尝试了一些我的解决方案,其中一个很好。

我做了什么:

  • 我在会话中保存了子实体的索引(在你的例子中是ItemPictureAdmin),当我需要一个实体时,我会从会话中获取索引,并从父实体的列表中获取具有该索引的元素。
  • 首先我将索引保存在会话索引0中,在ItemPictureAdmin中,我使用索引0访问ItemPictureAdmin的父列表
  • 之后,我在会话中递增索引。在获得列表中的所有元素后,我删除了保存索引的会话参数。

此解决方案是对caponica的解决方案here的改编

票数 0
EN

Stack Overflow用户

发布于 2014-07-03 23:02:40

我也有同样的问题,我可以通过“自定义表单类型扩展”做到这一点,"http://symfony.com/doc/current/cookbook/form/create_form_type_extension.html“链接上提供了相关文档。

这是完美的解决方案..

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13357482

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档