Sonata Admin - sonata_type_collection:从现有实体列表中选择

时间:2015-03-26 11:39:51

标签: php symfony doctrine-orm sonata-admin

我正在尝试使用Page网桥实体在ImagePageHasImage实体之间实现多对多关系。在PageAdmin我添加了这样的字段:

->add(
      'galleryImages', 
      'sonata_type_collection', 
      array(
            'cascade_validation' => false,
            'by_reference' => false,
            'type_options' => array('delete' => false)
           ),
      array(
            'edit' => 'inline',
            'inline' => 'table',
            'sortable' => 'position',
            'admin_code' => 'sonata.admin.page_has_image'
      )
 )

它为我提供了添加新Image字段的选项,然后上传新图片或从上传图片列表中选择它。上传部分按预期工作,但从已上载的图像列表中选择不执行任何操作。 Select列表中的Images按钮在其href中只有'#',似乎没有做任何有用的事情。列出的图像旁边还有复选框,但没有任何操作按钮可以使用选择。

我应该配置什么来使列表上的操作意味着什么?我的猜测是在关系制定者或生命周期事件方法中缺少某些东西,但我会赞赏一些指导。

1 个答案:

答案 0 :(得分:5)

好吧,我可以看到它并不是一个受欢迎的问题,但是对于任何很快遇到这个问题的可怜的灵魂来说 - 索纳塔有一个错误。此外,我评价Sonata管理员文档4/10 ...我花了几天时间寻找对奏鸣曲形式的各种配置参数的正确描述,确保我配置错误。度过你生命的好方法,呃。

以下是解决方案:https://github.com/sonata-project/SonataDoctrineORMAdminBundle/issues/404

为了完整起见,我会将其复制到此处'清酒:

在Resources / views / CRUD / edit_orm_many_association_script.html.twig中评论以下行修复了问题

if (this.nodeName == 'A' && (target.attr('href').length == 0 ||     target.attr('href')[0] == '#')) {
Admin.log('[{{ id }}|field_dialog_form_list_link] element is an anchor, skipping action', this);
return;

}